[zb4osgi-changeset] [scm] ZigBee 4 OSGi repository change: r428 - in /projects/zb4osgi/sandbox/manlio.bacco: ./ .settings/ configurations/ configurations/factories/ configurations/services/ src/ src/main/ src/main/eclipse-run/ src/main/java/ src/main/java/it/ src/main/java/it/cnr/ src/main/java/it/cnr/isti/ src/main/java/it/cnr/isti/zigbee/ src/main/java/it/cnr/isti/zigbee/ha/ src/main/java/it/cnr/isti/zigbee/ha/cluster/ src/main/java/it/cnr/isti/zigbee/ha/cluster/factory/ src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/ src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/ src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/ src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/ src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/ src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/ src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/ src/main/java/it/cnr/isti/zigbee/ha/device/ src/main/java/it/cnr/isti/zigbee/ha/device/api/ src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/ src/main/java/it/cnr/isti/zigbee/ha/device/api/hvac/ src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/ src/main/java/it/cnr/isti/zigbee/ha/device/api/security_safety/ src/main/java/it/cnr/isti/zigbee/ha/device/factory/ src/main/java/it/cnr/isti/zigbee/ha/device/impl/ src/main/java/it/cnr/isti/zigbee/ha/driver/ src/main/java/it/cnr/isti/zigbee/ha/driver/core/ src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/ src/main/resources/ src/test/ src/test/java/ src/test/resources/

scm-notify at zb4osgi.aaloa.org scm-notify at zb4osgi.aaloa.org
Thu Jun 21 11:49:30 CEST 2012


Author: manlio.bacco
Date: Thu Jun 21 11:49:30 2012
New Revision: 428

Log:
MB

Added:
    projects/zb4osgi/sandbox/manlio.bacco/.classpath   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/.project   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/.settings/
    projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.jdt.core.prefs   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.m2e.core.prefs   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/LICENSE
    projects/zb4osgi/sandbox/manlio.bacco/LICENSE.ZigBee
    projects/zb4osgi/sandbox/manlio.bacco/NOTICE
    projects/zb4osgi/sandbox/manlio.bacco/configurations/
    projects/zb4osgi/sandbox/manlio.bacco/configurations/factories/
    projects/zb4osgi/sandbox/manlio.bacco/configurations/services/
    projects/zb4osgi/sandbox/manlio.bacco/configurations/services/org.ops4j.pax.logging.properties   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/pax.args
    projects/zb4osgi/sandbox/manlio.bacco/pom.xml   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver + Exporter.launch   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver.launch   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver Stub + Home Automation Driver + PERSONA Driver.launch   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver.launch   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/Activator.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/factory/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/factory/HAClustersFactory.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/Cluster.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Alarms.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Basic.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/DeviceTemperatureConfiguration.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Groups.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Identify.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/LevelControl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOff.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitch.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitchConfiguration.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/PowerConfiguration.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/RSSILocation.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Scenes.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Time.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelEvent.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelListener.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffEvent.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffListener.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/IlluminanceMeasurement.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/OccupacySensing.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/RelativeHumidityMeasurement.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/TemperatureMeasurement.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeEvent.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeListener.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueEvent.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueListener.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyEvent.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyListener.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceEvent.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceListener.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASWD.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASZone.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/AlarmsImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/BasicImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/DeviceTemperatureConfigurationImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/GroupsImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IASWDImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IdentifyImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IlluminanceMeasurementImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/LevelControlImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OccupacySensingImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffSwitchConfigurationImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/PowerConfigurationImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/RelativeHumidityMeasurementImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/ScenesImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TemperatureMeasurementImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TimeImpl.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/CurrentLevelBridgeListeners.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/MeasuredValueBridgeListeners.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OccupancyBridgeListeners.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OnOffBridgeListeners.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/ToleranceBridgeListeners.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/LevelControlSwitch.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/MainsPowerOutlet.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffOutput.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffSwitch.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/hvac/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/hvac/TemperatureSensor.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/ColorDimmableLight.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/DimmableLight.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/LightSensor.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OccupancySensor.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLight.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLightSwitch.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/security_safety/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/security_safety/IAS_Zone.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/factory/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/factory/OnOffLightFactory.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/DimmableLightDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/GenericHADevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/IAS_ZoneDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LevelControlSwitchDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LightSensorDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/MainsPowerOutletDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OccupancySensorDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightSwitchDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffOutputDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffSwitchDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/TemperatureSensorDevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/ArraysUtil.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HADriverConfiguration.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HAImporter.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactory.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactoryBase.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/GenericHADeviceFactory.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADevice.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceBase.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactory.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactoryBase.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceRegistry.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HAProfile.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ReportingConfiguration.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ZigBeeHAException.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/AbstractDeviceDescription.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/DeviceDescription.java   (with props)
    projects/zb4osgi/sandbox/manlio.bacco/src/main/resources/
    projects/zb4osgi/sandbox/manlio.bacco/src/test/
    projects/zb4osgi/sandbox/manlio.bacco/src/test/java/
    projects/zb4osgi/sandbox/manlio.bacco/src/test/resources/

Added: projects/zb4osgi/sandbox/manlio.bacco/.classpath
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/.classpath (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/.classpath Thu Jun 21 11:49:30 2012
@@ -1,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Propchange: projects/zb4osgi/sandbox/manlio.bacco/.classpath
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/.project
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/.project (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/.project Thu Jun 21 11:49:30 2012
@@ -1,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.aaloa.zb4osgi.zigbee.ha.driver</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>

Propchange: projects/zb4osgi/sandbox/manlio.bacco/.project
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.jdt.core.prefs
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.jdt.core.prefs (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.jdt.core.prefs Thu Jun 21 11:49:30 2012
@@ -1,0 +1,5 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.5

Propchange: projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.jdt.core.prefs
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.m2e.core.prefs
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.m2e.core.prefs (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.m2e.core.prefs Thu Jun 21 11:49:30 2012
@@ -1,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1

Propchange: projects/zb4osgi/sandbox/manlio.bacco/.settings/org.eclipse.m2e.core.prefs
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/LICENSE
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/LICENSE (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/LICENSE Thu Jun 21 11:49:30 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/manlio.bacco/LICENSE.ZigBee
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/LICENSE.ZigBee (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/LICENSE.ZigBee Thu Jun 21 11:49:30 2012
@@ -1,0 +1,37 @@
+The ZigBee Specification is available to individuals, companies and institutions free of
+charge for all non-commercial purposes (including university research, technical
+evaluation, and development of non-commercial software, tools, or documentation). No
+part of this specification may be used in development of a product for sale without
+becoming a member of ZigBee Alliance.
+
+Copyright © ZigBee Alliance, Inc. (2007). All Rights Reserved. The information within this
+document is the property of the ZigBee Alliance and its use and disclosure are restricted.
+
+Elements of ZigBee Alliance specifications may be subject to third party intellectual
+property rights, including without limitation, patent, copyright or trademark rights (such a
+third party may or may not be a member of ZigBee). ZigBee is not responsible and shall not
+be held responsible in any manner for identifying or failing to identify any or all such third
+party intellectual property rights.
+
+This document and the information contained herein are provided on an ?AS IS? basis and
+ZigBee DISCLAIMS ALL WARRANTIES EXPRESS OR IMPLIED, INCLUDING BUT NOT
+LIMITED TO (A) ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN
+WILL NOT INFRINGE ANY RIGHTS OF THIRD PARTIES (INCLUDING WITHOUT
+LIMITATION ANY INTELLECTUAL PROPERTY RIGHTS INCLUDING PATENT,
+COPYRIGHT OR TRADEMARK RIGHTS) OR (B) ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NONINFRINGEMENT.
+IN NO EVENT WILL ZIGBEE BE LIABLE FOR ANY LOSS OF
+PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF
+BUSINESS, OR FOR ANY OTHER DIRECT, INDIRECT, SPECIAL OR EXEMPLARY,
+INCIDENTIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND, IN
+CONTRACT OR IN TORT, IN CONNECTION WITH THIS DOCUMENT OR THE
+INFORMATION CONTAINED HEREIN, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH LOSS OR DAMAGE. All Company, brand and product names may be trademarks
+that are the sole property of their respective owners.
+
+The above notice and this paragraph must be included on all copies of this document that
+are made.
+
+ZigBee Alliance, Inc.
+2400 Camino Ramon, Suite 375
+San Ramon, CA 94583

Added: projects/zb4osgi/sandbox/manlio.bacco/NOTICE
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/NOTICE (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/NOTICE Thu Jun 21 11:49:30 2012
@@ -1,0 +1,44 @@
+ZigBee Home Automation Profile Driver
+
+Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+Institute of Information Science and Technologies  of the 
+Italian National Research Council 
+
+
+I. Included Software
+
+This does not include any software developed by 3rd parties
+
+
+II. Used Software
+
+This product uses software developed at
+The Codehaus (http://www.codehaus.org)
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+The OPS4J (http://www.ops4j.org)
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright 2006-2009 The OSGi Alliance.
+Licensed under the Apache License 2.0.
+
+This product uses software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+
+III. Specification used
+
+Part of this software is based on the specification 
+provided by The ZigBee Alliance (http://www.zigbee.org) 
+Licensed under ZigBee specific license for non-member 
+of the ZigBee Allinace (see LICENSE.ZigBee file )
+
+
+IV. License Summary
+
+- Apache License 2.0
+- ZigBee Non-Member License

Added: projects/zb4osgi/sandbox/manlio.bacco/configurations/services/org.ops4j.pax.logging.properties
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/configurations/services/org.ops4j.pax.logging.properties (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/configurations/services/org.ops4j.pax.logging.properties Thu Jun 21 11:49:30 2012
@@ -1,0 +1,22 @@
+# Set root category priority to INFO and its only appender to CONSOLE.
+#log4j.rootCategory=DEBUG, CONSOLE
+log4j.rootCategory=INFO, CONSOLE, LOGFILE
+
+
+# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss.SSS} - %-5p - [%t]  %c - %m%n
+
+
+log4j.appender.LOGFILE=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.LOGFILE.file=log.log
+log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
+log4j.appender.LOGFILE.layout.ConversionPattern=%d{HH:mm:ss.SSS} - %-5p - [%t]  %c - %m%n
+
+log4j.logger.com.itaca=FATAL, CONSOLE
+
+log4j.logger.it.cnr.isti.zigbee=DEBUG, CONSOLE
+log4j.logger.it.cnr.isti.cc2480.high=DEBUG, CONSOLE
+log4j.logger=INFO, LOGFILE
+

Propchange: projects/zb4osgi/sandbox/manlio.bacco/configurations/services/org.ops4j.pax.logging.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/pax.args
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/pax.args (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/pax.args Thu Jun 21 11:49:30 2012
@@ -1,0 +1,32 @@
+#
+# PAX-RUNNER OPTIONS
+#
+--profiles=log,config
+--executor=script
+--org.ops4j.pax.runner.platform.downloadFeedback=false
+--org.ops4j.pax.runner.scanner.bundle.update=false
+
+#
+# BUNDLE LIST
+#
+
+# OSGi Tool 
+mvn:org.ops4j.pax.confman/pax-confman-propsloader/0.2.2	    
+
+# ZigBee Stack General Dependencies & Tool
+mvn:org.aaloa.zb4osgi.bundle/org.aaloa.zb4osgi.bundle.rxtx/2.1.7-1
+mvn:org.aaloa.zb4osgi.bundle/org.aaloa.zb4osgi.bundle.net.sf.trove4j/2.0.4-1
+mvn:org.aaloa.zb4osgi/org.aaloa.zb4osgi.zigbee.tester
+
+# ZigBee Hardware Access Layer 
+mvn:org.aaloa.zb4osgi/org.aaloa.zb4osgi.zigbee.dongle.api
+mvn:org.aaloa.zb4osgi/org.aaloa.zb4osgi.zigbee.CC2530.driver at nostart
+mvn:org.aaloa.zb4osgi/org.aaloa.zb4osgi.zigbee.ez430-rf2480.driver at nostart
+mvn:org.aaloa.zb4osgi/org.aaloa.zb4osgi.zigbee.cc2480.datalink
+mvn:org.aaloa.zb4osgi/org.aaloa.zb4osgi.zigbee.common
+
+# ZigBee Base Driver 
+mvn:org.aaloa.zb4osgi/org.aaloa.zb4osgi.zigbee.basedriver	    
+
+# ZigBee Refinement Architecture 
+mvn:org.aaloa.zb4osgi/org.aaloa.zb4osgi.zigbee.ha.driver

Added: projects/zb4osgi/sandbox/manlio.bacco/pom.xml
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/pom.xml (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/pom.xml Thu Jun 21 11:49:30 2012
@@ -1,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF 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.
+-->
+<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/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.aaloa.zb4osgi</groupId>
+    <artifactId>org.aaloa.zb4osgi.pom</artifactId>
+    <version>9-SNAPSHOT</version>
+    <relativePath>../pom/pom.xml</relativePath>
+  </parent>
+
+  <groupId>org.aaloa.zb4osgi</groupId>
+  <artifactId>org.aaloa.zb4osgi.zigbee.ha.driver</artifactId>
+  <packaging>bundle</packaging>  
+  <version>0.7.0-SNAPSHOT</version>
+
+  <name>ZigBee Home Automation Profile Driver</name>
+  <url>http://zb4osgi.aaloa.org/</url>
+  <description><![CDATA[
+A Home Automation Profile refinent driver that is able to refin ZigBeeDevice service
+as defined by the ZigBee OSGi Base Driver, using the OSGi Device Access Specification
+  ]]></description>
+
+  <inceptionYear>2008</inceptionYear>
+  <organization>
+    <name>Institute of Information Science and Technologies of the Italian National Research Council</name>
+    <url>http://isti.cnr.it/</url>
+  </organization> 
+  
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  
+  <developers>
+    <developer>
+      <id>slenzi</id>
+      <name>Stefano "Kismet" Lenzi</name>
+      <email>stefano.lenzi at isti.cnr.it</email>
+      <organization>Institute of Information Science and Technologies of the Italian National Research Council</organization>
+      <organizationUrl>http://www.isti.cnr.it/</organizationUrl>
+      <timezone>+1</timezone>
+    </developer>
+    <developer>
+      <id>ffurfari</id>
+      <name>Francesco Furfari</name>
+      <email>francesco.furfari at isti.cnr.it</email>
+      <organization>Institute of Information Science and Technologies of the Italian National Research Council</organization>
+      <organizationUrl>http://www.isti.cnr.it/</organizationUrl>
+      <timezone>+1</timezone>
+    </developer>
+    <developer>
+      <id>alessandro</id>
+      <name>Alessandro Giari</name>
+      <email>alessandro.giari at isti.cnr.it</email>
+      <organization>Institute of Information Science and Technologies of the Italian National Research Council</organization>
+      <organizationUrl>http://www.isti.cnr.it/</organizationUrl>
+      <timezone>+1</timezone>
+    </developer>
+  </developers>
+
+  <scm>
+    <connection>scm:svn:svn://svn.aaloa.org/projects/zb4osgi/trunk/zigbee.ha.driver</connection>
+    <developerConnection>scm:svn:svn://svn.aaloa.org/projects/zb4osgi/trunk/zigbee.ha.driver</developerConnection>
+    <url>http://zb4osgi.aaloa.org/projects/zb4osgi/repository/show/trunk/zigbee.ha.driver</url>
+  </scm>
+
+  <repositories>
+    <repository>
+      <id>nexus.aaloa.org</id>
+      <url>http://nexus.aaloa.org/content/repositories/releases/</url>
+      <snapshots><enabled>false</enabled></snapshots>
+    </repository>
+  </repositories>
+  
+  <dependencies>
+    <dependency>
+      <groupId>org.aaloa.zb4osgi</groupId>
+      <artifactId>org.aaloa.zb4osgi.zigbee.zcl.library</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.aaloa.zb4osgi</groupId>
+      <artifactId>org.aaloa.zb4osgi.zigbee.basedriver.api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.logging</groupId>
+      <artifactId>pax-logging-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.ops4j.pax.logging</groupId>
+      <artifactId>pax-logging-service</artifactId>
+    </dependency>  
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.osgi.core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.felix</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.aaloa.zb4osgi</groupId>
+      <artifactId>org.aaloa.zb4osgi.zigbee.common</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>  
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-javadoc-plugin</artifactId>
+        <configuration>
+          <groups>
+	  <group>
+	    <title>ZigBee Refinement Driver Extendible Architecture</title>
+	    <packages>it.cnr.isti.zigbee.ha.driver*:it.cnr.isti.zigbee.ha.cluster.factory:it.cnr.isti.zigbee.ha</packages>
+	  </group>
+	  <group>
+	    <title>Simple ZigBee Cluster API</title>
+	    <packages>it.cnr.isti.zigbee.ha.cluster.glue*</packages>
+	  </group>
+	  <group>
+	    <title>Home Automation Device API</title>
+	    <packages>it.cnr.isti.zigbee.ha.device.api*</packages>
+	  </group>
+	  <group>
+	    <title>Default Simple ZigBee Cluster implementation</title>
+	    <packages>it.cnr.isti.zigbee.ha.cluster.impl*</packages>
+	  </group>
+	  <group>
+	    <title>Default Home Automation Device implementation</title>
+	    <packages>it.cnr.isti.zigbee.ha.device.factory:it.cnr.isti.zigbee.ha.device.impl*</packages>
+	  </group>
+	</groups>
+        </configuration>
+      </plugin>
+      <plugin>    
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Bundle-Author><![CDATA[
+	    Stefano "Kismet" Lenzi <stefano.lenzi at isti.cnr.it>, 
+	    Francesco Furfari <francesco.furfari at isti.cnr.it>, 
+	    Alessandro Giari <alessandro.giari at isti.cnr.it>
+            ]]></Bundle-Author>
+            <Bundle-Name>${project.name}</Bundle-Name>
+            <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+            <Bundle-Activator>it.cnr.isti.zigbee.ha.Activator</Bundle-Activator>
+            <Private-Package>
+              it.cnr.isti.primitvetypes.util,
+              com.itaca.ztool.util
+            </Private-Package>
+            <Export-Package>
+              it.cnr.isti.zigbee.ha.*;version=${pom.version},
+              it.cnr.isti.zigbee.persona.*;version=${pom.version}
+            </Export-Package>
+            <Import-Package>
+              !com.itaca.ztool.api.*,
+              it.cnr.isti.zigbee.zcl.*,
+              it.cnr.isti.zigbee.api.*,
+              it.cnr.isti.osgi.util, 
+              org.osgi.*,
+              org.slf4j; provider=paxlogging                
+            </Import-Package>                        
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-changelog-plugin</artifactId>
+        <configuration>
+          <type>date</type>
+          <dates>
+            <date implementation="java.lang.String">2010-10-24</date>
+            <date implementation="java.lang.String">2029-12-31</date>
+          </dates>
+          <dateFormat>yyyy-MM-dd</dateFormat>
+        </configuration>
+      </plugin>
+    </plugins>
+  </reporting>
+
+</project>

Propchange: projects/zb4osgi/sandbox/manlio.bacco/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver + Exporter.launch
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver + Exporter.launch (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver + Exporter.launch Thu Jun 21 11:49:30 2012
@@ -1,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ZigBee Base Driver + Home Automation Driver + Exporter"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.pde.ui.launcher.PDESourceLookupDirector"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sourceLookupDirector>
<sourceContainers duplicates="false">
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;demo.lighting.consumer&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/>
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;demo.lighting.exporter&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/>
<container memento="&amp
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true
-Dit.cnr.isti.zigbee.driver.serial.portname=COM5
-Dit.cnr.isti.zigbee.pan.channel=22
-Dit.cnr.isti.zigbee.driver.mode=EndDevice
-Dbundles.configuration.location=${workspace_loc:org.aal-persona.zigbee.driver.ha}/configurations"/>
+<stringAttribute key="org.ops4j.pax.cursor.logLevel" value="TRACE"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwrite" value="true"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwriteSystemBundles" value="false"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwriteUserBundles" value="false"/>
+<listAttribute key="org.ops4j.pax.cursor.profiles">
+<listEntry value="log"/>
+</listAttribute>
+<mapAttribute key="org.ops4j.pax.cursor.provisionItems">
+<mapEntry key="mvn:org.ops4j.pax.confman/pax-confman-propsloader/0.2.2" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.ha" value="true at false@null at true"/>
+<mapEntry key="mvn:org.aal-persona.middleware/sodapop.osgi" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.platform/casf.ont" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.samples/lighting.ont" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.middleware/middleware.upper" value="true at true@null at false"/>
+<mapEntry key="mvn:personatest/demo.lighting.exporter" value="false at false@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver" value="true at false@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.exporter" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.zcl" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.platform/prof.ont" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.bundles/org.aal-persona.bundles.net.sourceforge.trove/2.0.4-0001" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.api" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.bundles/org.aal-persona.bundles.rxtx/2.1.7-0001" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.middleware/acl.interfaces" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.pcl" value="true at true@null at true"/>
+</mapAttribute>
+<listAttribute key="org.ops4j.pax.cursor.runArguments">
+<listEntry value="--overwrite=true"/>
+<listEntry value="--overwriteUserBundles=false"/>
+<listEntry value="--overwriteSystemBundles=false"/>
+<listEntry value="--log=TRACE"/>
+<listEntry value="--profiles=log"/>
+<listEntry value="mvn:org.ops4j.pax.confman/pax-confman-propsloader/0.2.2"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.ha at nostart@update"/>
+<listEntry value="mvn:org.aal-persona.platform/casf.ont"/>
+<listEntry value="mvn:org.aal-persona.middleware/middleware.upper"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.zcl at update"/>
+<listEntry value="mvn:org.aal-persona.platform/prof.ont"/>
+<listEntry value="mvn:org.aal-persona.middleware/acl.interfaces at update"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.pcl at update"/>
+<listEntry value="mvn:org.aal-persona.middleware/sodapop.osgi"/>
+<listEntry value="mvn:org.aal-persona.samples/lighting.ont"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver at nostart@update"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.exporter at update"/>
+<listEntry value="mvn:org.aal-persona.bundles/org.aal-persona.bundles.net.sourceforge.trove/2.0.4-0001"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.api"/>
+<listEntry value="mvn:org.aal-persona.bundles/org.aal-persona.bundles.rxtx/2.1.7-0001"/>
+</listAttribute>
+<stringAttribute key="osgi_framework_id" value="--platform=felix --version=1.4.1"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+</launchConfiguration>

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver + Exporter.launch
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver.launch
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver.launch (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver.launch Thu Jun 21 11:49:30 2012
@@ -1,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ZigBee Base Driver + Home Automation Driver"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.pde.ui.launcher.PDESourceLookupDirector"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sourceLookupDirector>
<sourceContainers duplicates="false">
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;org.aal-persona.zigbee.basedriver.api&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/>
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;org.aal-persona.zigbee.basedriver&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/>
<co
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true
-Dit.cnr.isti.zigbee.driver.serial.portname=COM5
-Dit.cnr.isti.zigbee.pan.channel=22
-Dit.cnr.isti.zigbee.driver.mode=EndDevice
-Dbundles.configuration.location=${workspace_loc:org.aal-persona.zigbee.driver.ha}/configurations"/>
+<stringAttribute key="org.ops4j.pax.cursor.logLevel" value="INFO"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwrite" value="false"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwriteSystemBundles" value="false"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwriteUserBundles" value="false"/>
+<listAttribute key="org.ops4j.pax.cursor.profiles">
+<listEntry value="config"/>
+<listEntry value="log"/>
+</listAttribute>
+<mapAttribute key="org.ops4j.pax.cursor.provisionItems">
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver" value="true at true@null at true"/>
+<mapEntry key="mvn:org.ops4j.pax.confman/pax-confman-propsloader/0.2.2" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.zcl" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.ha" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.bundles/org.aal-persona.bundles.net.sourceforge.trove/2.0.4-0001" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.api" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.bundles/org.aal-persona.bundles.rxtx/2.1.7-0001" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.pcl" value="true at true@null at true"/>
+</mapAttribute>
+<listAttribute key="org.ops4j.pax.cursor.runArguments">
+<listEntry value="--overwrite=false"/>
+<listEntry value="--overwriteUserBundles=false"/>
+<listEntry value="--overwriteSystemBundles=false"/>
+<listEntry value="--log=INFO"/>
+<listEntry value="--profiles=config,log"/>
+<listEntry value="mvn:org.ops4j.pax.confman/pax-confman-propsloader/0.2.2"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.ha at update"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver at update"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.zcl at update"/>
+<listEntry value="mvn:org.aal-persona.bundles/org.aal-persona.bundles.net.sourceforge.trove/2.0.4-0001"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.api at update"/>
+<listEntry value="mvn:org.aal-persona.bundles/org.aal-persona.bundles.rxtx/2.1.7-0001"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.pcl at update"/>
+</listAttribute>
+<stringAttribute key="osgi_framework_id" value="--platform=felix --version=1.4.1"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+</launchConfiguration>

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver + Home Automation Driver.launch
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver Stub + Home Automation Driver + PERSONA Driver.launch
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver Stub + Home Automation Driver + PERSONA Driver.launch (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver Stub + Home Automation Driver + PERSONA Driver.launch Thu Jun 21 11:49:30 2012
@@ -1,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ZigBee Base Driver Stub + Home Automation Driver + PERSONA Driver"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.pde.ui.launcher.PDESourceLookupDirector"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sourceLookupDirector>
<sourceContainers duplicates="false">
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;javaProject name=&quot;org.aal-persona.zigbee.driver.pcl&quot;/&gt;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/>
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;javaProject name=&quot;org.aal-persona.zigbee.driver.persona&quot;/&gt;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/>
<container memento="&lt;?xml version=&quot;1.0&
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true
-Dbundles.configuration.location=${workspace_loc:org.aal-persona.zigbee.driver.ha}/configurations"/>
+<stringAttribute key="org.ops4j.pax.cursor.logLevel" value="INFO"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwrite" value="false"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwriteSystemBundles" value="false"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwriteUserBundles" value="false"/>
+<listAttribute key="org.ops4j.pax.cursor.profiles">
+<listEntry value="config"/>
+<listEntry value="log"/>
+</listAttribute>
+<mapAttribute key="org.ops4j.pax.cursor.provisionItems">
+<mapEntry key="mvn:org.ops4j.pax.confman/pax-confman-propsloader/0.2.2" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.zcl" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.bundles/org.aal-persona.bundles.net.sourceforge.trove/2.0.4-0001" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.persona" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.ha" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.stub" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.api" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.pcl" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/it.cnr.isti.primitivetypes-util" value="true at true@null at true"/>
+</mapAttribute>
+<listAttribute key="org.ops4j.pax.cursor.runArguments">
+<listEntry value="--overwrite=false"/>
+<listEntry value="--overwriteUserBundles=false"/>
+<listEntry value="--overwriteSystemBundles=false"/>
+<listEntry value="--log=INFO"/>
+<listEntry value="--profiles=config,log"/>
+<listEntry value="mvn:org.ops4j.pax.confman/pax-confman-propsloader/0.2.2"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.stub at update"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.ha at update"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.zcl at update"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.persona at update"/>
+<listEntry value="mvn:org.aal-persona.bundles/org.aal-persona.bundles.net.sourceforge.trove/2.0.4-0001"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.api at update"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.driver.pcl at update"/>
+<listEntry value="mvn:org.aal-persona.sail/it.cnr.isti.primitivetypes-util at update"/>
+</listAttribute>
+<stringAttribute key="osgi_framework_id" value="--platform=felix --version=1.8.0"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+</launchConfiguration>

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver Stub + Home Automation Driver + PERSONA Driver.launch
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver.launch
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver.launch (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver.launch Thu Jun 21 11:49:30 2012
@@ -1,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.EquinoxLauncher">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/ZigBee Base Driver"/>
+<booleanAttribute key="default_auto_start" value="true"/>
+<intAttribute key="default_start_level" value="4"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.pde.ui.launcher.PDESourceLookupDirector"/>
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sourceLookupDirector>
<sourceContainers duplicates="false">
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;org.aal-persona.zigbee.basedriver.api&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/>
<container memento="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;javaProject name=&quot;org.aal-persona.zigbee.basedriver&quot;/&gt;&#13;&#10;" typeId="org.eclipse.jdt.launching.sourceContainer.javaProject"/>
<co
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -console"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.ignoreApp=true -Dosgi.noShutdown=true
-Dit.cnr.isti.zigbee.driver.serial.portname=COM5
-Dit.cnr.isti.zigbee.pan.channel=22
-Dit.cnr.isti.zigbee.driver.mode=EndDevice
-Dbundles.configuration.location=${workspace_loc:org.aal-persona.zigbee.driver.ha}/configurations"/>
+<stringAttribute key="org.ops4j.pax.cursor.logLevel" value="INFO"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwrite" value="false"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwriteSystemBundles" value="false"/>
+<booleanAttribute key="org.ops4j.pax.cursor.overwriteUserBundles" value="false"/>
+<listAttribute key="org.ops4j.pax.cursor.profiles">
+<listEntry value="log"/>
+</listAttribute>
+<mapAttribute key="org.ops4j.pax.cursor.provisionItems">
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.api" value="true at true@null at true"/>
+<mapEntry key="mvn:org.aal-persona.bundles/org.aal-persona.bundles.rxtx/2.1.7-0001" value="true at true@null at false"/>
+<mapEntry key="mvn:org.aal-persona.bundles/org.aal-persona.bundles.net.sourceforge.trove/2.0.4-0001" value="true at true@null at false"/>
+</mapAttribute>
+<listAttribute key="org.ops4j.pax.cursor.runArguments">
+<listEntry value="--overwrite=false"/>
+<listEntry value="--overwriteUserBundles=false"/>
+<listEntry value="--overwriteSystemBundles=false"/>
+<listEntry value="--log=INFO"/>
+<listEntry value="--profiles=log"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver at update"/>
+<listEntry value="mvn:org.aal-persona.bundles/org.aal-persona.bundles.net.sourceforge.trove/2.0.4-0001"/>
+<listEntry value="mvn:org.aal-persona.sail/org.aal-persona.zigbee.basedriver.api at update"/>
+<listEntry value="mvn:org.aal-persona.bundles/org.aal-persona.bundles.rxtx/2.1.7-0001"/>
+</listAttribute>
+<stringAttribute key="osgi_framework_id" value="--platform=felix --version=1.4.1"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useDefaultConfigArea" value="true"/>
+</launchConfiguration>

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/eclipse-run/ZigBee Base Driver.launch
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/Activator.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/Activator.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/Activator.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,142 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha;
+
+import it.cnr.isti.zigbee.ha.cluster.factory.HAClustersFactory;
+import it.cnr.isti.zigbee.ha.device.api.generic.LevelControlSwitch;
+import it.cnr.isti.zigbee.ha.device.api.generic.MainsPowerOutlet;
+import it.cnr.isti.zigbee.ha.device.api.generic.OnOffOutput;
+import it.cnr.isti.zigbee.ha.device.api.generic.OnOffSwitch;
+import it.cnr.isti.zigbee.ha.device.api.hvac.TemperatureSensor;
+import it.cnr.isti.zigbee.ha.device.api.lighting.DimmableLight;
+import it.cnr.isti.zigbee.ha.device.api.lighting.LightSensor;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OccupancySensor;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OnOffLightSwitch;
+import it.cnr.isti.zigbee.ha.device.api.security_safety.IAS_Zone;
+import it.cnr.isti.zigbee.ha.device.factory.OnOffLightFactory;
+import it.cnr.isti.zigbee.ha.device.impl.DimmableLightDevice;
+import it.cnr.isti.zigbee.ha.device.impl.IAS_ZoneDevice;
+import it.cnr.isti.zigbee.ha.device.impl.LevelControlSwitchDevice;
+import it.cnr.isti.zigbee.ha.device.impl.LightSensorDevice;
+import it.cnr.isti.zigbee.ha.device.impl.MainsPowerOutletDevice;
+import it.cnr.isti.zigbee.ha.device.impl.OccupancySensorDevice;
+import it.cnr.isti.zigbee.ha.device.impl.OnOffLightSwitchDevice;
+import it.cnr.isti.zigbee.ha.device.impl.OnOffOutputDevice;
+import it.cnr.isti.zigbee.ha.device.impl.OnOffSwitchDevice;
+import it.cnr.isti.zigbee.ha.device.impl.TemperatureSensorDevice;
+import it.cnr.isti.zigbee.ha.driver.HADriverConfiguration;
+import it.cnr.isti.zigbee.ha.driver.HAImporter;
+import it.cnr.isti.zigbee.ha.driver.core.GenericHADeviceFactory;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceFactoryBase;
+import it.cnr.isti.zigbee.ha.driver.core.ReportingConfiguration;
+
+import java.util.ArrayList;
+import java.util.Properties;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.cm.ManagedService;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 90 $ ($LastChangedDate: 2010-10-08 21:02:14 +0200 (ven, 08 ott 2010) $)
+ *
+ */
+public class Activator implements BundleActivator {
+
+	private static final String HA_CONFIG_PID = "it.cnr.isti.zigbee.ha.configuration";
+
+	private HAImporter haImporter;
+
+	private final ArrayList<HADeviceFactoryBase> factories = new ArrayList<HADeviceFactoryBase>();
+
+	private ServiceRegistration configRegistration;
+
+	private static HADriverConfiguration configuration = null;
+
+	public static HADriverConfiguration getConfiguration(){
+		return configuration;
+	}
+
+	private void doRegisterConfigurationService(BundleContext ctx){
+		Properties properties = new Properties();
+
+		properties.setProperty(Constants.SERVICE_PID, HA_CONFIG_PID);
+
+		configuration = new HADriverConfiguration(ctx);
+		configRegistration = ctx.registerService(
+				new String[]{ManagedService.class.getName(), ReportingConfiguration.class.getName()}, 
+				configuration, 
+				null
+				);
+	}
+
+	public void start(BundleContext ctx) throws Exception {
+
+		doRegisterConfigurationService(ctx);
+
+		new HAClustersFactory(ctx).register();
+
+		factories.add(new OnOffLightFactory(ctx).register());
+
+		//factories.add(new GenericHADeviceFactory(ctx, HADevice.class, GenericHADevice.class).register());
+
+		factories.add(new GenericHADeviceFactory(ctx, DimmableLight.class, DimmableLightDevice.class).register());
+
+		factories.add(new GenericHADeviceFactory(ctx, LevelControlSwitch.class, LevelControlSwitchDevice.class).register());
+
+		factories.add(new GenericHADeviceFactory(ctx, OccupancySensor.class, OccupancySensorDevice.class).register());
+
+		factories.add(new GenericHADeviceFactory(ctx, OnOffLightSwitch.class, OnOffLightSwitchDevice.class).register());
+
+		factories.add(new GenericHADeviceFactory(ctx, OnOffOutput.class, OnOffOutputDevice.class).register());
+
+		factories.add(new GenericHADeviceFactory(ctx, OnOffSwitch.class, OnOffSwitchDevice.class).register());
+
+		factories.add(new GenericHADeviceFactory(ctx, TemperatureSensor.class, TemperatureSensorDevice.class).register());
+
+		/* */
+
+		factories.add(new GenericHADeviceFactory(ctx, MainsPowerOutlet.class, MainsPowerOutletDevice.class).register()); // new
+
+		factories.add(new GenericHADeviceFactory(ctx, IAS_Zone.class, IAS_ZoneDevice.class).register()); // new
+
+		factories.add(new GenericHADeviceFactory(ctx, LightSensor.class, LightSensorDevice.class).register()); // new
+
+		/* */
+
+		haImporter = new HAImporter(ctx);
+	}
+
+	public void stop(BundleContext context) throws Exception {
+		haImporter.close();
+
+		for (HADeviceFactoryBase factory : factories) {
+			factory.unregister();
+		}
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/Activator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/factory/HAClustersFactory.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/factory/HAClustersFactory.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/factory/HAClustersFactory.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,106 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.factory;
+
+import it.cnr.isti.zigbee.ha.cluster.impl.AlarmsImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.BasicImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.DeviceTemperatureConfigurationImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.GroupsImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.IdentifyImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.IlluminanceMeasurementImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.LevelControlImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.OccupacySensingImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.OnOffImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.OnOffSwitchConfigurationImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.PowerConfigurationImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.RelativeHumidityMeasurementImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.ScenesImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.TemperatureMeasurementImpl;
+import it.cnr.isti.zigbee.ha.cluster.impl.TimeImpl;
+import it.cnr.isti.zigbee.ha.driver.core.ClusterFactoryBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class HAClustersFactory extends ClusterFactoryBase {
+
+	//General
+	final static String BASIC_KEY = HAProfile.ID + ":"+ HAProfile.BASIC;
+	final static String POWER_CONFIGURATION_KEY = HAProfile.ID + ":"+ HAProfile.POWER_CONFIGURATION;
+	final static String DEVICE_TEMPERATURE_CONFIGURATION_KEY = HAProfile.ID + ":"+ HAProfile.DEVICE_TEMPERATURE_CONFIGURATION;
+	final static String IDENTIFY_KEY = HAProfile.ID + ":"+ HAProfile.IDENTIFY;
+	final static String GROUPS_KEY = HAProfile.ID + ":"+ HAProfile.GROUPS;
+	final static String SCENES_KEY = HAProfile.ID + ":"+ HAProfile.SCENES;
+	final static String ONOFF_KEY = HAProfile.ID + ":"+ HAProfile.ON_OFF;
+	final static String ON_OFF_SWITCH_CONFIGURATION_KEY = HAProfile.ID + ":"+ HAProfile.ON_OFF_SWITCH_CONFIGURATION;
+	final static String LEVEL_CONTROL_KEY = HAProfile.ID + ":"+ HAProfile.LEVEL_CONTROL;
+	final static String ALARMS_KEY = HAProfile.ID + ":"+ HAProfile.ALARMS;
+	final static String TIME_KEY = HAProfile.ID + ":"+ HAProfile.TIME;
+	final static String COMMISSIONING_KEY = HAProfile.ID + ":"+ HAProfile.COMMISSIONING;
+
+	//Measurement and Sensing
+	final static String TEMPERATURE_MEASUREMENT_KEY = HAProfile.ID + ":"+ HAProfile.TEMPERATURE_MEASUREMENT;
+	final static String RELATIVE_HUMIDITY_MEASUREMENT_KEY = HAProfile.ID + ":"+ HAProfile.RELATIVE_HUMIDITY_MEASUREMENT;
+	final static String OCCUPANCY_SENSING_KEY = HAProfile.ID + ":"+ HAProfile.OCCUPANCY_SENSING;
+	final static String ILLUMINANCE_MEASUREMENT_KEY = HAProfile.ID + ":"+ HAProfile.ILLUMINANCE_MEASUREMENT; // new
+
+	//Security and Safety
+	final static String IAS_ZONE_KEY = HAProfile.ID + ":"+ HAProfile.IAS_ZONE;
+	final static String IAS_WD_KEY = HAProfile.ID + ":"+ HAProfile.IAS_WD;
+
+	public HAClustersFactory(BundleContext ctx){
+		super(ctx);
+
+		//General
+		addCluster(BASIC_KEY, BasicImpl.class);
+		addCluster(POWER_CONFIGURATION_KEY, PowerConfigurationImpl.class);
+		addCluster(DEVICE_TEMPERATURE_CONFIGURATION_KEY, DeviceTemperatureConfigurationImpl.class);
+		addCluster(IDENTIFY_KEY, IdentifyImpl.class);
+		addCluster(GROUPS_KEY, GroupsImpl.class);
+		addCluster(SCENES_KEY, ScenesImpl.class);
+		addCluster(ONOFF_KEY, OnOffImpl.class);
+		addCluster(ON_OFF_SWITCH_CONFIGURATION_KEY, OnOffSwitchConfigurationImpl.class);
+		addCluster(LEVEL_CONTROL_KEY, LevelControlImpl.class);
+		addCluster(ALARMS_KEY, AlarmsImpl.class);
+		addCluster(TIME_KEY, TimeImpl.class);
+		addCluster(COMMISSIONING_KEY, TimeImpl.class); // new
+
+		//Measurement and Sensing
+		addCluster(TEMPERATURE_MEASUREMENT_KEY, TemperatureMeasurementImpl.class);
+		addCluster(RELATIVE_HUMIDITY_MEASUREMENT_KEY, RelativeHumidityMeasurementImpl.class);
+		addCluster(OCCUPANCY_SENSING_KEY, OccupacySensingImpl.class);
+		addCluster(ILLUMINANCE_MEASUREMENT_KEY, IlluminanceMeasurementImpl.class); // new
+
+		//Security and Safety
+		//TODO the glue class addCluster(IAS_ZONE_KEY, IASZoneImpl.class);
+		//TODO the glue class addCluster(IAS_WD_KEY, IASWDImpl.class);
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/factory/HAClustersFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/Cluster.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/Cluster.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/Cluster.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,77 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue;
+
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface Cluster {
+	
+	String PROFILE_CLUSTER_IDs = "zigbee.profile.cluster.ids";
+
+	/**
+	 * This method return the actual <i>ClusterId</i>. Please remember that the final and official <i>ClusterId</i><br>
+	 * is defined by the <i>Profile</i> even if the Cluster is defined by a <i>Cluster Library</i>.
+	 * 
+	 * @return the <i>ClusterId</i>
+	 */
+	public int getId();
+	
+	/**
+	 * 
+	 * @return This method return the {@link String} identifying the human readable name of the cluster.<br>
+	 * 		The name is assigned by the document defining the Cluster, either the <i>Cluster Library</i> or<br>
+	 * 		or the <i>Profile</i> 
+	 */
+	public String getName();
+
+	/**
+	 * 
+	 * This method return an array of {@link Subscription} objects according to the number of reportable {@link Attribute}
+	 * currently used. 
+	 * @return an array of {@link Subscription}
+	 */
+	public Subscription[] getActiveSubscriptions();
+	
+	/**
+	 * 
+	 * @return {@link Attribute} array with all the attribute implemented by the {@link Cluster}
+	 * @since 0.2.0
+	 */
+	public Attribute[] getAttributes();
+	
+	/**
+	 * 
+	 * @param id the <code>int</code> value identifying an attribute of the {@link Cluster}
+	 * @return {@link Attribute} implemented by the cluster identified by the given id
+	 * @since 0.2.0
+	 */
+	public Attribute getAttribute(int id);
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/Cluster.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Alarms.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Alarms.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Alarms.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,53 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.general.alarms.AlarmListener;
+import it.cnr.isti.zigbee.zcl.library.api.general.alarms.GetAlarmResponse;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface Alarms extends Cluster {
+    
+    public Attribute getAttributeAlarmCount();
+
+    public void resetAlarm(int clusterId, int attributeId) throws ZigBeeHAException;
+
+    public void resetAllAlarms() throws ZigBeeHAException;
+
+    public GetAlarmResponse getAlarm() throws ZigBeeHAException;
+
+    public void resetAlarmLog() throws ZigBeeHAException;
+
+    public boolean addAlarmListerner(AlarmListener listener);
+
+    public boolean removeAlarmListerner(AlarmListener listener);
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Alarms.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Basic.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Basic.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Basic.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,53 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface Basic extends Cluster {
+	
+	public Attribute getZCLVersion();
+	public Attribute getApplicationVersion();
+	public Attribute getStackVersion();
+	public Attribute getHWVersion();
+	public Attribute getManufacturerName();
+	public Attribute getModelIdentifier();
+	public Attribute getDateCode();
+	public Attribute getPowerSource();
+	public String getLocationDescription() throws ZigBeeHAException;
+	public Attribute getPhysicalEnviroment();
+	public boolean getDeviceEnabled() throws ZigBeeHAException;
+	public Attribute getAlarmMask();
+	
+	public void resetToFactoryDefault() throws ZigBeeHAException;
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Basic.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/DeviceTemperatureConfiguration.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/DeviceTemperatureConfiguration.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/DeviceTemperatureConfiguration.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,46 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface DeviceTemperatureConfiguration extends Cluster {
+
+	public Attribute getCurrentTemperature();
+	public Attribute getMinTempExperienced();
+	public Attribute getMaxTempExperienced();
+	public Attribute getOverTempTotalDwell();
+	
+	public Attribute getDeviceTempAlarmMask();
+	public Attribute getLowTempThreshold();
+	public Attribute getHighTempThreshold();
+	public Attribute getLowTempDwellTripPoint();
+	public Attribute getHighTempDwellTripPoint();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/DeviceTemperatureConfiguration.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Groups.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Groups.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Groups.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,56 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.general.groups.AddGroupResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.groups.GetGroupMembershipResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.groups.RemoveGroupResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.groups.ViewGroupResponse;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface Groups extends Cluster{
+
+	public AddGroupResponse addGroup(int groupId) throws ZigBeeHAException;
+
+	public void addGroupIfIdentifying(int groupId, String name) throws ZigBeeHAException;
+
+	public GetGroupMembershipResponse getGroupMembership(int[] groupList) throws ZigBeeHAException;
+
+	public void removeAllGroup() throws ZigBeeHAException;
+
+	public RemoveGroupResponse removeGroup(int groupId) throws ZigBeeHAException;
+
+	public ViewGroupResponse viewGroup(int groupId) throws ZigBeeHAException;
+	
+	public Attribute getNameSupport();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Groups.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Identify.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Identify.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Identify.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,43 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface Identify extends Cluster{
+	
+	public void identify(int time)  throws ZigBeeHAException;
+	
+	public int IdentifyQuery() throws ZigBeeHAException;
+	
+	public int getIdentifyTime() throws ZigBeeHAException;
+
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Identify.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/LevelControl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/LevelControl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/LevelControl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,85 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.event.CurrentLevelListener;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface LevelControl extends Cluster {
+
+	public Attribute getCurrentLevel();
+	public Attribute getRemainingTime();
+	public Attribute getOnOffTransactionTime();
+	public Attribute getOnLevel();
+	
+	/**
+	 * 
+	 * @param listener The {@link CurrentLevelListener} to subscribe for events
+	 * @since 0.2.0
+	 */
+	public boolean subscribe(CurrentLevelListener listener);
+	
+	/**
+	 * 
+	 * @param listener The {@link CurrentLevelListener} to unsubscribe
+	 * @since 0.2.0
+	 */
+	public boolean unsubscribe(CurrentLevelListener listener);
+	
+	
+	public void moveToLevel(short level, int time) throws ZigBeeHAException;
+	public void move(byte mode, short rate) throws ZigBeeHAException;
+	public void step(byte mode, short step, int time) throws ZigBeeHAException;
+	public void stop() throws ZigBeeHAException;
+
+	/**
+	 * @since 0.6.0
+	 */
+	public void moveToLevelWithOnOff(short level, int time) throws ZigBeeHAException;
+
+	/**
+	 * @since 0.6.0
+	 */
+	public void moveWithOnOff(byte mode, short rate) throws ZigBeeHAException;
+
+	/**
+	 * @since 0.6.0
+	 */
+	public void stepWithOnOff(byte mode, short step, int time) throws ZigBeeHAException;
+	
+	/**
+	 * @since 0.6.0
+	 */
+	public void stopWithOnOff() throws ZigBeeHAException;
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/LevelControl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOff.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOff.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOff.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,61 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.event.OnOffListener;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface OnOff extends Cluster{
+
+	public void on() throws ZigBeeHAException;
+	
+	public void off() throws ZigBeeHAException;
+
+	public void toggle() throws ZigBeeHAException;
+	
+	public boolean getOnOff() throws ZigBeeHAException;
+	
+	/**
+	 * 
+	 * @param listener The {@link OnOffListener} to subscribe for events
+	 * @since 0.2.0
+	 */
+	public boolean subscribe(OnOffListener listener);
+	
+	/**
+	 * 
+	 * @param listener The {@link OnOffListener} to unsubscribe
+	 * @since 0.2.0
+	 */
+	public boolean unsubscribe(OnOffListener listener);
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOff.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitch.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitch.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitch.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,52 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Response;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface OnOffSwitch extends Cluster {
+
+public Attribute getAttributeOnOff();
+	
+	public Response on(boolean disableDefatultResponse);
+	public Response off(boolean disableDefatultResponse);
+	public Response toggle(boolean disableDefatultResponse);
+
+	
+	public void on();
+	
+	
+	public void off();
+	
+	
+	public void toggle();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitch.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitchConfiguration.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitchConfiguration.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitchConfiguration.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,38 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface OnOffSwitchConfiguration extends Cluster {
+
+	public Attribute getSwitchType();
+	public Attribute getSwitchActions();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/OnOffSwitchConfiguration.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/PowerConfiguration.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/PowerConfiguration.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/PowerConfiguration.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,53 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface PowerConfiguration extends Cluster {
+
+	public Attribute getMainsVoltage();
+	public Attribute getMainsFrequency();
+	
+	public Attribute getMainsAlarmMask();
+	public Attribute getMainsVoltageMinThreshold();
+	public Attribute getMainsVoltageMaxThreshold();
+	public Attribute getMainsDwellTripPoint();
+	
+	public Attribute getBatteryVoltage();
+	
+	public Attribute getBatteryManufacturer();
+	public Attribute getBatterySize();
+	public Attribute getBatteryAHrRating();
+	public Attribute getBatteryQuantity();
+	public Attribute getBatteryRatedVoltage();
+	public Attribute getBatteryAlarmMask();
+	public Attribute getBatteryVoltageMinThreshold();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/PowerConfiguration.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/RSSILocation.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/RSSILocation.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/RSSILocation.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,49 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Response;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface RSSILocation extends Cluster {
+
+public Attribute getAttributeOnOff();
+	
+	public Response on(boolean disableDefatultResponse);
+	public Response off(boolean disableDefatultResponse);
+	public Response toggle(boolean disableDefatultResponse);
+
+	public void on();
+	
+	public void off();
+	
+	public void toggle();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/RSSILocation.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Scenes.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Scenes.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Scenes.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,69 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.AddScenePayload;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.AddSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.GetSceneMembershipResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.RemoveAllSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.RemoveSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.StoreSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.ViewSceneResponse;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface Scenes extends Cluster{
+
+	public AddSceneResponse addScene(AddScenePayload scenePayload) throws ZigBeeHAException;
+	
+	public GetSceneMembershipResponse getSceneMembership(int groupId) throws ZigBeeHAException;
+	
+	public void recallScene(int groupId, short sceneId) throws ZigBeeHAException;
+	
+	public RemoveAllSceneResponse removeAllScene() throws ZigBeeHAException;
+	
+	public RemoveSceneResponse removeScene(int groupId, short sceneId) throws ZigBeeHAException;
+
+	public StoreSceneResponse storeScene(int groupId, short sceneId) throws ZigBeeHAException;
+
+	public ViewSceneResponse viewScene(int groupId, short sceneId) throws ZigBeeHAException;
+	
+	public Attribute getSceneCount();
+	
+	public Attribute getCurrentScene();
+	
+	public Attribute getCurrentGroup();
+	
+	public Attribute getSceneValid();
+	
+	public Attribute getNameSupport();
+	
+	public Attribute getLastConfiguredBy();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Scenes.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Time.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Time.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Time.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,38 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface Time extends Cluster {
+
+	public Attribute getTime();
+	public Attribute getTimeStatus();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/Time.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelEvent.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelEvent.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelEvent.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,40 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.2.0
+ *
+ */
+public interface CurrentLevelEvent {
+	
+	public int getEvent();
+	
+	public Cluster getSource();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelEvent.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelListener.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelListener.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelListener.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,36 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general.event;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.2.0
+ *
+ */
+public interface CurrentLevelListener {
+	
+	public void changedCurrentLevel(CurrentLevelEvent event);
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/CurrentLevelListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffEvent.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffEvent.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffEvent.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,46 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface OnOffEvent {
+	
+	public boolean getEvent();
+	
+	/**
+	 * 
+	 * @return the reference to the {@link Cluster} object which represent the <i>Cluster</i> whose<br>
+	 * 			generated the event
+	 * @since 0.6.0
+	 */
+	public Cluster getSource();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffEvent.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffListener.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffListener.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffListener.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,36 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.general.event;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface OnOffListener {
+	
+	public void changedOnOff(OnOffEvent event);
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/general/event/OnOffListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/IlluminanceMeasurement.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/IlluminanceMeasurement.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/IlluminanceMeasurement.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,29 @@
+package it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.LightSensorTypeListener;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.MeasuredValueListener;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.ToleranceListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+
+public interface IlluminanceMeasurement extends Cluster {
+
+	public Attribute getMeasuredValue();
+	public Attribute getMinMeasuredValue();
+	public Attribute getMaxMeasuredValue();
+	public Attribute getTolerance();
+	public Attribute getLightSensorType();
+
+	public boolean subscribe(MeasuredValueListener tl);
+
+	public boolean unsubscribe(MeasuredValueListener tl);
+
+	public boolean subscribe(ToleranceListener tl);
+
+	public boolean unsubscribe(ToleranceListener tl);
+
+	//public boolean subscribe(LightSensorTypeListener tl);
+
+	//public boolean unsubscribe(LightSensorTypeListener tl);
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/IlluminanceMeasurement.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/OccupacySensing.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/OccupacySensing.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/OccupacySensing.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,65 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.OccupancyListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+
+/**
+ * This class represent the <b>Occupancy sensing</b> Cluster as defined by the document:<br>
+ * <i>ZigBee Cluster Library</i> public release version 075123r01ZB
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface OccupacySensing extends Cluster {
+	
+	public Attribute getOccupancy();
+	
+	/**
+	 * 
+	 * @param listener The {@link OccupancyListener} to subscribe for events
+	 * @since 0.2.0
+	 */
+	public void subscribe(OccupancyListener listener);
+	
+	/**
+	 * 
+	 * @param listener The {@link OccupancyListener} to unsubscribe
+	 * @since 0.2.0
+	 */
+	public void unsubscribe(OccupancyListener listener);
+	
+	public Attribute getOccupancySensorType();
+	
+	public Attribute getPIROccupiedToUnoccupiedDelay();
+	public Attribute getPIRUnoccupiedToOccupiedDelay();
+	
+	public Attribute getUltraSonicOccupiedToUnoccupiedDelay();
+	public Attribute getUltraSonicUnoccupiedToOccupiedDelay();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/OccupacySensing.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/RelativeHumidityMeasurement.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/RelativeHumidityMeasurement.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/RelativeHumidityMeasurement.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,74 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.MeasuredValueListener;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.ToleranceListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+
+/**
+ * This interface simplify the use of the cluster by avoiding the check of error messages and flow control. 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public interface RelativeHumidityMeasurement extends Cluster {
+
+	public Attribute getMeasuredValue();
+	public Attribute getMinMeasuredValue();
+	public Attribute getMaxMeasuredValue();
+	public Attribute getTolerance();
+
+	/**
+	 * 
+	 * @param tl The {@link ToleranceListener} to subscribe for events
+	 * @since 0.6.0
+	 */
+	public boolean subscribe(ToleranceListener tl);
+	
+	/**
+	 * 
+	 * @param tl The {@link ToleranceListener} to unsubscribe
+	 * @since 0.6.0
+	 */
+	public boolean unsubscribe(ToleranceListener tl);
+	
+	/**
+	 * 
+	 * @param mvl The {@link MeasuredValueListener} to subscribe for events
+	 * @since 0.6.0
+	 */
+	public boolean subscribe(MeasuredValueListener mvl);
+	
+	/**
+	 * 
+	 * @param mvl The {@link MeasuredValueListener} to unsubscribe
+	 * @since 0.6.0
+	 */
+	public boolean unsubscribe(MeasuredValueListener mvl);
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/RelativeHumidityMeasurement.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/TemperatureMeasurement.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/TemperatureMeasurement.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/TemperatureMeasurement.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,71 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.MeasuredValueListener;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.ToleranceListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface TemperatureMeasurement extends Cluster {
+
+	public Attribute getMeasuredValue();
+	public Attribute getMinMeasuredValue();
+	public Attribute getMaxMeasuredValue();
+	public Attribute getTolerance();
+	
+	/**
+	 * 
+	 * @param tl The {@link ToleranceListener} to subscribe for events
+	 * @since 0.6.0
+	 */
+	public boolean subscribe(ToleranceListener tl);
+	
+	/**
+	 * 
+	 * @param tl The {@link ToleranceListener} to unsubscribe
+	 * @since 0.6.0
+	 */
+	public boolean unsubscribe(ToleranceListener tl);
+	
+	/**
+	 * 
+	 * @param mvl The {@link MeasuredValueListener} to subscribe for events
+	 * @since 0.6.0
+	 */
+	public boolean subscribe(MeasuredValueListener mvl);
+	
+	/**
+	 * 
+	 * @param mvl The {@link MeasuredValueListener} to unsubscribe
+	 * @since 0.6.0
+	 */
+	public boolean unsubscribe(MeasuredValueListener mvl);
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/TemperatureMeasurement.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeEvent.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeEvent.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeEvent.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,10 @@
+package it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+
+public interface LightSensorTypeEvent {
+
+	public int getEvent();
+
+	public Cluster getSource();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeEvent.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeListener.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeListener.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeListener.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,7 @@
+package it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event;
+
+public interface LightSensorTypeListener {
+
+	public void changedLightSensorType(LightSensorTypeEvent event);
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/LightSensorTypeListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueEvent.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueEvent.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueEvent.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,40 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public interface MeasuredValueEvent {
+	
+	public int getEvent();
+	
+	public Cluster getSource();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueEvent.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueListener.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueListener.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueListener.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,36 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public interface MeasuredValueListener {
+	
+	public void changedMeasuredValue(MeasuredValueEvent event);
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/MeasuredValueListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyEvent.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyEvent.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyEvent.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,41 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.2.0
+ *
+ */
+public interface OccupancyEvent {
+
+	public int getEvent();
+	
+	public Cluster getSource();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyEvent.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyListener.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyListener.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyListener.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,37 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event;
+
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.2.0
+ *
+ */
+public interface OccupancyListener {
+	
+	public void changedOccupancy(OccupancyEvent event);
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/OccupancyListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceEvent.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceEvent.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceEvent.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,40 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public interface ToleranceEvent {
+	
+	public int getEvent();
+	
+	public Cluster getSource();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceEvent.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceListener.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceListener.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceListener.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,36 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public interface ToleranceListener {
+	
+	public void changedTolerance(ToleranceEvent event);
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/measureament_sensing/event/ToleranceListener.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASWD.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASWD.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASWD.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,42 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.security_safety;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Response;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface IASWD extends Cluster {
+
+	public Attribute getMaxDuration();
+	
+	public Response startWaiting(short warningMode, short strobe, long warningDuration);
+	
+	public Response squawk(short squawkMode, short strobe, short squawkLevel);	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASWD.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASZone.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASZone.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASZone.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,48 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.glue.security_safety;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.security_safety.ias_zone.ZoneEnrollResponse;
+import it.cnr.isti.zigbee.zcl.library.api.security_safety.ias_zone.ZoneStatusChangeNotificationListener;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface IASZone extends Cluster {
+
+	public Attribute getZoneState();
+	public Attribute getZoneType();
+	public Attribute getZoneStatus();
+	public Attribute getIASCIEAddress();
+
+	public ZoneEnrollResponse ZoneEnrollRequest(byte zoneType, byte manufacturerCode);
+
+	public boolean addZoneStatusChangeNotificationListener(ZoneStatusChangeNotificationListener listener);
+
+	public boolean removeZoneStatusChangeNotificationListener(ZoneStatusChangeNotificationListener listener);
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/glue/security_safety/IASZone.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/AlarmsImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/AlarmsImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/AlarmsImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,144 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Alarms;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Response;
+import it.cnr.isti.zigbee.zcl.library.api.core.Status;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZigBeeClusterException;
+import it.cnr.isti.zigbee.zcl.library.api.general.alarms.AlarmListener;
+import it.cnr.isti.zigbee.zcl.library.api.general.alarms.GetAlarmResponse;
+import it.cnr.isti.zigbee.zcl.library.api.global.DefaultResponse;
+import it.cnr.isti.zigbee.zcl.library.impl.general.AlarmsCluster;
+
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public class AlarmsImpl implements Alarms{
+	
+	private final AlarmsCluster alarmsCluster;
+	private final Attribute attribute;
+	
+	public AlarmsImpl(ZigBeeDevice zbDevice){
+		alarmsCluster = new AlarmsCluster(zbDevice);
+		attribute = alarmsCluster.getAttributeAlarmCount();
+	}
+
+	public boolean getOnOff() throws ZigBeeHAException {
+		try {
+			Boolean value = (Boolean) attribute.getValue();
+			return value.booleanValue();
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return alarmsCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return alarmsCluster.getId();
+	}
+
+	public String getName() {
+		return alarmsCluster.getName();
+	}
+
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = alarmsCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return alarmsCluster.getAvailableAttributes();
+	}
+
+	public Attribute getAttributeAlarmCount() {
+	    return attribute;
+	}
+
+	public boolean addAlarmListerner(AlarmListener listener) {
+	    return alarmsCluster.addAlarmListerner(listener);
+	}
+
+	public boolean removeAlarmListerner(AlarmListener listener) {
+	    return alarmsCluster.removeAlarmListerner(listener);
+	}
+
+	public GetAlarmResponse getAlarm() throws ZigBeeHAException {
+	    try {
+		Response response = alarmsCluster.getAlarm();
+		if (response.getZCLHeader().getCommandId() != GetAlarmResponse.ID)
+		    throw new ZigBeeHAException( ((DefaultResponse) response).getStatus().toString());
+		
+		return (GetAlarmResponse) response;
+	    } catch (ZigBeeClusterException e) {
+		throw new ZigBeeHAException(e);
+	    }
+	}
+
+	public void resetAlarm(int clusterId, int attributeId) throws ZigBeeHAException {
+	    try {
+		DefaultResponse response = (DefaultResponse) alarmsCluster.resetAlarm(clusterId, attributeId);
+		if (response.getStatus() != Status.SUCCESS)
+		    throw new ZigBeeHAException(response.getStatus().toString());
+	    } catch (ZigBeeClusterException e) {
+		throw new ZigBeeHAException(e);
+	    }
+	}
+
+	public void resetAlarmLog() throws ZigBeeHAException {
+	    try {
+		DefaultResponse response = (DefaultResponse) alarmsCluster.resetAlarmLog();
+		if (response.getStatus() != Status.SUCCESS)
+		    throw new ZigBeeHAException(response.getStatus().toString());
+	    } catch (ZigBeeClusterException e) {
+		throw new ZigBeeHAException(e);
+	    }
+	}
+
+	public void resetAllAlarms() throws ZigBeeHAException{
+	    try {
+		DefaultResponse response = (DefaultResponse) alarmsCluster.resetAllAlarms();
+		if (response.getStatus() != Status.SUCCESS)
+		    throw new ZigBeeHAException(response.getStatus().toString());
+	    } catch (ZigBeeClusterException e) {
+		throw new ZigBeeHAException(e);
+	    }
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/AlarmsImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/BasicImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/BasicImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/BasicImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,168 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Basic;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Status;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZigBeeClusterException;
+import it.cnr.isti.zigbee.zcl.library.api.global.DefaultResponse;
+import it.cnr.isti.zigbee.zcl.library.impl.general.BasicCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class BasicImpl implements Basic{
+	
+	private BasicCluster basicCluster;
+	private Attribute zclVersion;  
+	private Attribute applicationVersion;
+	private Attribute stackVersion;
+	private Attribute hwVersion;
+	private Attribute manufacturerName;
+	private Attribute modelIdentifier;
+	private Attribute dataCode;
+	private Attribute powerSource;	
+	private Attribute locationDescription;
+	private Attribute physicalEnviroment;
+	private Attribute deviceEnabled;
+	private Attribute alarmMask;
+	
+	public BasicImpl(ZigBeeDevice zbDevice){
+		basicCluster = new BasicCluster(zbDevice);
+		zclVersion = basicCluster.getAttributeZCLVersion();  
+		applicationVersion = basicCluster.getAttributeApplicationVersion();
+		stackVersion = basicCluster.getAttributeStackVersion();
+		hwVersion = basicCluster.getAttributeHWVersion();
+		manufacturerName = basicCluster.getAttributeManufacturerName();
+		modelIdentifier = basicCluster.getAttributeModelIdentifier();
+		dataCode = basicCluster.getAttributeDateCode();
+		powerSource = basicCluster.getPowerSource();	
+		locationDescription = basicCluster.getAttributeLocationDescription();
+		physicalEnviroment = basicCluster.getAttributePhysicalEnviroment();
+		deviceEnabled = basicCluster.getAttributeDeviceEnabled();
+		alarmMask = basicCluster.getAttributeAlarmMask();
+	}
+
+	public Attribute getAlarmMask() {
+		return alarmMask;
+	}
+
+	public Attribute getApplicationVersion() {
+		return applicationVersion;
+	}
+
+	public Attribute getDateCode() {
+		return dataCode;
+	}
+
+	public boolean getDeviceEnabled() throws ZigBeeHAException{
+		try {
+			Boolean value = (Boolean) deviceEnabled.getValue();
+			return value.booleanValue();
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Attribute getHWVersion() {
+		return hwVersion;
+	}
+
+	public String getLocationDescription() throws ZigBeeHAException{
+		try {
+			String value = (String) locationDescription.getValue();
+			return value;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Attribute getManufacturerName() {
+		return manufacturerName;
+	}
+
+	public Attribute getModelIdentifier() {
+		return modelIdentifier;
+	}
+
+	public Attribute getPhysicalEnviroment() {
+		return physicalEnviroment;
+	}
+
+	public Attribute getPowerSource() {
+		return powerSource;
+	}
+
+	public Attribute getStackVersion() {
+		return stackVersion;
+	}
+
+	public Attribute getZCLVersion() {
+		return zclVersion;
+	}
+
+	public void resetToFactoryDefault() throws ZigBeeHAException{
+		try {
+			DefaultResponse response = basicCluster.resetToFactoryDefault();
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return basicCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return basicCluster.getId();
+	}
+
+	public String getName() {
+		return basicCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = basicCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return basicCluster.getAvailableAttributes();
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/BasicImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/DeviceTemperatureConfigurationImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/DeviceTemperatureConfigurationImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/DeviceTemperatureConfigurationImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,125 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.DeviceTemperatureConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.impl.general.DeviceTemperatureConfigurationCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public class DeviceTemperatureConfigurationImpl implements DeviceTemperatureConfiguration{
+	
+	private final DeviceTemperatureConfigurationCluster cluster;
+	private final Attribute currentTemperature;
+	private final Attribute deviceTemperature;
+	private final Attribute highTemperature;
+	private final Attribute highTemperatureThreshold;
+	private final Attribute lowTemperature;
+	private final Attribute lowTemperatureThreshold;
+	private final Attribute maxTemperature;
+	private final Attribute minTemperature;
+	private final Attribute overTemperature;
+	
+	public DeviceTemperatureConfigurationImpl(ZigBeeDevice zbDevice){
+		cluster = new DeviceTemperatureConfigurationCluster(zbDevice);
+		currentTemperature = cluster.getAttributeCurrentTemperature();
+		deviceTemperature = cluster.getAttributeDeviceTempAlarmMask();
+		highTemperature = cluster.getAttributeHighTempDwellTripPoint();
+		highTemperatureThreshold = cluster.getAttributeHighTempThreshold();
+		lowTemperature = cluster.getAttributeLowTempDwellTripPoint();
+		lowTemperatureThreshold = cluster.getAttributeLowTempThreshold();
+		maxTemperature = cluster.getAttributeMaxTempExperienced();
+		minTemperature = cluster.getAttributeMinTempExperienced();
+		overTemperature = cluster.getAttributeOverTempTotalDwell();
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return cluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return cluster.getId();
+	}
+
+	public String getName() {
+		return cluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = cluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return cluster.getAvailableAttributes();
+	}
+
+	public Attribute getCurrentTemperature() {
+	    return currentTemperature;
+	}
+
+	public Attribute getDeviceTempAlarmMask() {
+	    return deviceTemperature;
+	}
+
+	public Attribute getHighTempDwellTripPoint() {
+	    return highTemperature;
+	}
+
+	public Attribute getHighTempThreshold() {
+	    return highTemperatureThreshold;
+	}
+
+	public Attribute getLowTempDwellTripPoint() {
+	    return lowTemperature;
+	}
+
+	public Attribute getLowTempThreshold() {
+	    return lowTemperatureThreshold;
+	}
+
+	public Attribute getMaxTempExperienced() {
+	    return maxTemperature;
+	}
+
+	public Attribute getMinTempExperienced() {
+	    return minTemperature;
+	}
+
+	public Attribute getOverTempTotalDwell() {
+	    return overTemperature;
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/DeviceTemperatureConfigurationImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/GroupsImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/GroupsImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/GroupsImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,143 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Status;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZigBeeClusterException;
+import it.cnr.isti.zigbee.zcl.library.api.general.groups.AddGroupResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.groups.GetGroupMembershipResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.groups.RemoveGroupResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.groups.ViewGroupResponse;
+import it.cnr.isti.zigbee.zcl.library.api.global.DefaultResponse;
+import it.cnr.isti.zigbee.zcl.library.impl.general.GroupsCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class GroupsImpl implements Groups {
+	
+	private GroupsCluster groupCluster;
+	private Attribute nameSupport;
+	
+	public GroupsImpl(ZigBeeDevice zbDevice){
+		groupCluster = new GroupsCluster(zbDevice);
+		nameSupport = groupCluster.getAttributeNameSupport();
+	}
+
+	public AddGroupResponse addGroup(int groupId) throws ZigBeeHAException{
+		try {
+			AddGroupResponse response = (AddGroupResponse)groupCluster.addGroup(groupId);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public void addGroupIfIdentifying(int groupId, String name) throws ZigBeeHAException{
+		try {
+			DefaultResponse response = (DefaultResponse)groupCluster.addGroupIfIdentifying(groupId, name);
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+
+	}
+
+	public GetGroupMembershipResponse getGroupMembership(int[] groupList) throws ZigBeeHAException{
+		try {
+			GetGroupMembershipResponse response = (GetGroupMembershipResponse)groupCluster.getGroupMembership(groupList);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Attribute getNameSupport() {
+		return nameSupport;
+	}
+
+	public void removeAllGroup() throws ZigBeeHAException{
+		try {
+			DefaultResponse response = (DefaultResponse)groupCluster.removeAllGroup();
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public RemoveGroupResponse removeGroup(int groupId) throws ZigBeeHAException{
+		try {
+			RemoveGroupResponse response = (RemoveGroupResponse)groupCluster.removeGroup(groupId);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public ViewGroupResponse viewGroup(int groupId) throws ZigBeeHAException{
+		try {
+			ViewGroupResponse response = (ViewGroupResponse)groupCluster.viewGroup(groupId);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return groupCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return groupCluster.getId();
+	}
+
+	public String getName() {
+		return groupCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = groupCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return groupCluster.getAvailableAttributes();
+	}
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/GroupsImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IASWDImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IASWDImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IASWDImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,63 @@
+package it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.security_safety.IASWD;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Response;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+
+public class IASWDImpl implements IASWD {
+
+	//private final IASWDCluster cluster;
+
+	private final Attribute maxDuration;
+
+	public IASWDImpl(ZigBeeDevice zbDevice){
+
+		//cluster = new IASWD(zbDevice);
+		//maxDuration = cluster.getMeasuredValue();
+		maxDuration = null;
+		//cluster = null;
+	}
+
+	public int getId() {
+		// TODO Auto-generated method stub
+		return 0;
+	}
+
+	public String getName() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Attribute getAttribute(int id) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Attribute getMaxDuration() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Response startWaiting(short warningMode, short strobe,
+			long warningDuration) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public Response squawk(short squawkMode, short strobe, short squawkLevel) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IASWDImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IdentifyImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IdentifyImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IdentifyImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,109 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Identify;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Status;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZigBeeClusterException;
+import it.cnr.isti.zigbee.zcl.library.api.general.identify.IdentifyQueryResponse;
+import it.cnr.isti.zigbee.zcl.library.api.global.DefaultResponse;
+import it.cnr.isti.zigbee.zcl.library.impl.general.IdentifyCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class IdentifyImpl implements Identify {
+	
+	private IdentifyCluster identifyCluster;
+	private Attribute identifyTime;
+	
+	
+	public IdentifyImpl(ZigBeeDevice zbDevice){
+		identifyCluster = new IdentifyCluster(zbDevice);
+		
+	}
+
+	public int IdentifyQuery() throws ZigBeeHAException{
+		try {
+			IdentifyQueryResponse response = (IdentifyQueryResponse)identifyCluster.identifyQuery();
+			return response.getTimeout();
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public int getIdentifyTime() throws ZigBeeHAException{
+		try {
+		return (Integer)identifyTime.getValue();
+		
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public void identify(int time)  throws ZigBeeHAException {
+		try {
+			DefaultResponse response = (DefaultResponse) identifyCluster.identify(time);
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return identifyCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return identifyCluster.getId();
+	}
+
+	public String getName() {
+		return identifyCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = identifyCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return identifyCluster.getAvailableAttributes();
+	}
+	
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IdentifyImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IlluminanceMeasurementImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IlluminanceMeasurementImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IlluminanceMeasurementImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,114 @@
+package it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.Activator;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.IlluminanceMeasurement;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.MeasuredValueListener;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.ToleranceListener;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.MeasuredValueBridgeListeners;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.ToleranceBridgeListeners;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.impl.measureament_sensing.IlluminanceMeasurementCluster;
+
+public class IlluminanceMeasurementImpl implements IlluminanceMeasurement {
+
+	private final IlluminanceMeasurementCluster cluster;
+	private final Attribute measuredValue;
+	private final Attribute minMeasuredValue;
+	private final Attribute maxMeasuredValue;
+	private final Attribute tolerance;
+	private final Attribute lightSensorType;
+
+	private final MeasuredValueBridgeListeners measureBridge;
+	private final ToleranceBridgeListeners toleranceBridge;
+	//private final ToleranceBridgeListeners toleranceBridge;
+
+	public IlluminanceMeasurementImpl(ZigBeeDevice zbDevice){
+
+		cluster = new IlluminanceMeasurementCluster(zbDevice);
+		measuredValue = cluster.getMeasuredValue();
+		minMeasuredValue = cluster.getMinMeasuredValue();
+		maxMeasuredValue = cluster.getMaxMeasuredValue();
+		tolerance = cluster.getTolerance();
+		lightSensorType = cluster.getLightSensorType();
+
+		toleranceBridge = new ToleranceBridgeListeners(Activator.getConfiguration(), tolerance, this);
+		measureBridge = new MeasuredValueBridgeListeners(Activator.getConfiguration(), measuredValue, this);
+	}
+
+	public int getId() {
+
+		return cluster.getId();
+	}
+
+	public String getName() {
+
+		return cluster.getName();
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+
+		return cluster.getActiveSubscriptions();
+	}
+
+	public Attribute[] getAttributes() {
+
+		return cluster.getAvailableAttributes();
+	}
+
+	public Attribute getAttribute(int id) {
+
+		Attribute[] attributes = cluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute getMeasuredValue() {
+
+		return measuredValue;
+	}
+
+	public Attribute getMinMeasuredValue() {
+
+		return minMeasuredValue;
+	}
+
+	public Attribute getMaxMeasuredValue() {
+
+		return maxMeasuredValue;
+	}
+
+	public Attribute getTolerance() {
+
+		return tolerance;
+	}
+
+	public Attribute getLightSensorType() {
+
+		return lightSensorType;
+	}
+
+	public boolean subscribe(MeasuredValueListener tl) {
+
+		return measureBridge.subscribe(tl);
+	}
+
+	public boolean unsubscribe(MeasuredValueListener tl) {
+
+		return measureBridge.unsubscribe(tl);
+	}
+
+	public boolean subscribe(ToleranceListener tl) {
+
+		return toleranceBridge.subscribe(tl);
+	}
+
+	public boolean unsubscribe(ToleranceListener tl) {
+
+		return toleranceBridge.unsubscribe(tl);
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/IlluminanceMeasurementImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/LevelControlImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/LevelControlImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/LevelControlImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,197 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.Activator;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.LevelControl;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.event.CurrentLevelListener;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.CurrentLevelBridgeListeners;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Status;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZigBeeClusterException;
+import it.cnr.isti.zigbee.zcl.library.api.global.DefaultResponse;
+import it.cnr.isti.zigbee.zcl.library.impl.general.LevelControlCluster;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public class LevelControlImpl implements LevelControl {
+	
+	private LevelControlCluster levelControlCluster;
+	private Attribute currentLevel;  
+	private Attribute remainingTime;
+	private Attribute onOffTransitionTime;
+	private Attribute onLevel;
+	private final CurrentLevelBridgeListeners eventBridge;
+	
+	public LevelControlImpl(ZigBeeDevice zbDevice){
+		levelControlCluster = new LevelControlCluster(zbDevice);
+		currentLevel = levelControlCluster.getAttributeCurrentLevel();
+		remainingTime = levelControlCluster.getAttributeRemainingTime();
+		onOffTransitionTime = levelControlCluster.getAttributeOnOffTransactionTime();
+		onLevel = levelControlCluster.getAttributeOnLevel();
+		eventBridge = new CurrentLevelBridgeListeners(Activator.getConfiguration(),currentLevel, this);
+	}
+	
+
+	public Attribute getCurrentLevel() {
+		return currentLevel;
+	}
+
+	public Attribute getOnLevel() {
+		return onLevel;
+	}
+
+	public Attribute getOnOffTransactionTime() {
+		return onOffTransitionTime;
+	}
+
+	public Attribute getRemainingTime() {
+		return remainingTime;
+	}
+
+	public void move(byte mode, short rate) throws ZigBeeHAException {
+		try {
+			DefaultResponse response = (DefaultResponse)levelControlCluster.move(mode, rate);
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public void moveWithOnOff(byte mode, short rate) throws ZigBeeHAException {
+		try {
+			DefaultResponse response = (DefaultResponse)levelControlCluster.moveWithOnOff(mode, rate);
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+	
+
+	public void moveToLevel(short level, int time) throws ZigBeeHAException{
+		try {
+			DefaultResponse response = (DefaultResponse)levelControlCluster.moveToLevel(level, time);
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public void moveToLevelWithOnOff(short level, int time) throws ZigBeeHAException {
+		try {
+			DefaultResponse response = (DefaultResponse)levelControlCluster.moveToLevelWithOnOff(level, time);
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+	
+	public void step(byte mode, short step, int time) throws ZigBeeHAException{
+		try {
+			DefaultResponse response = (DefaultResponse)levelControlCluster.step(mode, step, time);
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}	
+	
+	public void stepWithOnOff(byte mode, short step, int time) throws ZigBeeHAException {
+		try {
+			DefaultResponse response = (DefaultResponse)levelControlCluster.stepWithOnOff(mode, step, time);
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+	
+
+	public void stop() throws ZigBeeHAException{
+		try {
+			DefaultResponse response = (DefaultResponse)levelControlCluster.stop();
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public void stopWithOnOff() throws ZigBeeHAException {
+		try {
+			DefaultResponse response = (DefaultResponse)levelControlCluster.stopWithOnOff();
+			if (! response.getStatus().equals(Status.SUCCESS))
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+	
+	
+	public Subscription[] getActiveSubscriptions() {
+		return levelControlCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return levelControlCluster.getId();
+	}
+
+	public String getName() {
+		return levelControlCluster.getName();
+	}
+	
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = levelControlCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return levelControlCluster.getAvailableAttributes();
+	}
+
+
+	public boolean subscribe(CurrentLevelListener listener) {
+		return eventBridge.subscribe(listener);
+	}
+
+	public boolean unsubscribe(CurrentLevelListener listener) {
+		return eventBridge.unsubscribe(listener);
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/LevelControlImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OccupacySensingImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OccupacySensingImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OccupacySensingImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,124 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.Activator;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.OccupacySensing;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.OccupancyListener;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.OccupancyBridgeListeners;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.impl.measureament_sensing.OccupacySensingCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class OccupacySensingImpl implements OccupacySensing {
+			
+	private OccupacySensingCluster occupacySensingCluster;
+	
+	private Attribute occupancy;
+	private Attribute occupancySensorType;
+	private Attribute pirOccupiedToUnoccupiedDelay;
+	private Attribute pirUnoccupiedToOccupiedDelay;
+	private Attribute ultraSonicOccupiedToUnoccupiedDelay;
+	private Attribute ultraSonicUnoccupiedToOccupiedDelay;
+	
+	private OccupancyBridgeListeners eventBridge;
+	
+	public OccupacySensingImpl(ZigBeeDevice zbDevice){		
+		
+		occupacySensingCluster = new OccupacySensingCluster(zbDevice);
+		occupancy = occupacySensingCluster.getAttributeOccupancy();
+		occupancySensorType = occupacySensingCluster.getAttributeOccupancySensorType();
+		pirOccupiedToUnoccupiedDelay = occupacySensingCluster.getAttributePIROccupiedToUnoccupiedDelay();
+		pirUnoccupiedToOccupiedDelay = occupacySensingCluster.getAttributePIRUnoccupiedToOccupiedDelay();
+		ultraSonicOccupiedToUnoccupiedDelay = occupacySensingCluster.getAttributeUltraSonicOccupiedToUnoccupiedDelay();
+		ultraSonicUnoccupiedToOccupiedDelay = occupacySensingCluster.getAttributeUltraSonicUnoccupiedToOccupiedDelay();
+		eventBridge = new OccupancyBridgeListeners(Activator.getConfiguration(), occupancy, this);		
+	}
+
+	public Attribute getOccupancy() {
+		return occupancy;
+	}
+
+	public Attribute getOccupancySensorType() {
+		return occupancySensorType;
+	}
+
+	public Attribute getPIROccupiedToUnoccupiedDelay() {
+		return pirUnoccupiedToOccupiedDelay;
+	}
+
+	public Attribute getPIRUnoccupiedToOccupiedDelay() {
+		return pirOccupiedToUnoccupiedDelay;
+	}
+
+	public Attribute getUltraSonicOccupiedToUnoccupiedDelay() {
+		return ultraSonicOccupiedToUnoccupiedDelay;
+	}
+
+	public Attribute getUltraSonicUnoccupiedToOccupiedDelay() {
+		return ultraSonicUnoccupiedToOccupiedDelay;
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return occupacySensingCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return occupacySensingCluster.getId();
+	}
+
+	public String getName() {
+		return occupacySensingCluster.getName();
+	}
+
+	public void subscribe(OccupancyListener listener) {
+		eventBridge.subscribe(listener);
+	}
+
+	public void unsubscribe(OccupancyListener listener) {
+		eventBridge.unsubscribe(listener);
+	}
+	
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = occupacySensingCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return occupacySensingCluster.getAvailableAttributes();
+	}
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OccupacySensingImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,133 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.Activator;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.event.OnOffListener;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.OnOffBridgeListeners;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Status;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZigBeeClusterException;
+import it.cnr.isti.zigbee.zcl.library.api.global.DefaultResponse;
+import it.cnr.isti.zigbee.zcl.library.impl.general.OnOffCluster;
+
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class OnOffImpl implements OnOff{
+	
+	private final Attribute attribute;
+	private final OnOffCluster onOffCluster;
+	private OnOffBridgeListeners eventBridge;
+		
+	public OnOffImpl(ZigBeeDevice zbDevice){
+		onOffCluster = new OnOffCluster(zbDevice);
+		attribute = onOffCluster.getAttributeOnOff();
+		eventBridge = new OnOffBridgeListeners(Activator.getConfiguration(), attribute, this);
+	}
+
+	public boolean getOnOff() throws ZigBeeHAException {
+		try {
+			Boolean value = (Boolean) attribute.getValue();
+			return value.booleanValue();
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+	
+	public boolean subscribe(OnOffListener listener) {
+		return eventBridge.subscribe(listener);
+	}
+
+	public boolean unsubscribe(OnOffListener listener) {
+		return eventBridge.unsubscribe(listener);
+	}
+	
+	
+	public void off() throws ZigBeeHAException {
+		try {
+			DefaultResponse response = onOffCluster.off();
+			if (response.getStatus() != Status.SUCCESS)
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public void on() throws ZigBeeHAException {
+		try {
+			DefaultResponse response = onOffCluster.on();
+			if (response.getStatus() != Status.SUCCESS)
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public void toggle() throws ZigBeeHAException {
+		try {
+			DefaultResponse response = onOffCluster.toggle();
+			if (response.getStatus() != Status.SUCCESS)
+				throw new ZigBeeHAException(response.getStatus().toString());
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return onOffCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return onOffCluster.getId();
+	}
+
+	public String getName() {
+		return onOffCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = onOffCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return onOffCluster.getAvailableAttributes();
+	}
+
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffSwitchConfigurationImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffSwitchConfigurationImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffSwitchConfigurationImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,85 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.impl.general.OnOffSwitchConfigurationCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class OnOffSwitchConfigurationImpl implements OnOffSwitchConfiguration {
+
+	private OnOffSwitchConfigurationCluster onOffSwitchConfiguratioCluster;
+	private Attribute switchType;  
+	private Attribute switchActions;
+	
+	public OnOffSwitchConfigurationImpl(ZigBeeDevice zbDevice){
+		onOffSwitchConfiguratioCluster = new OnOffSwitchConfigurationCluster(zbDevice);
+		switchType = onOffSwitchConfiguratioCluster.getAttributeSwitchType();
+		switchActions = onOffSwitchConfiguratioCluster.getAttributeSwitchActions();
+		 
+	}
+	
+	public Attribute getSwitchActions() {
+		return switchActions;
+	}
+
+	public Attribute getSwitchType() {
+		return switchType;
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return onOffSwitchConfiguratioCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return onOffSwitchConfiguratioCluster.getId();
+	}
+
+	public String getName() {
+		return onOffSwitchConfiguratioCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = onOffSwitchConfiguratioCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return onOffSwitchConfiguratioCluster.getAvailableAttributes();
+	}
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/OnOffSwitchConfigurationImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/PowerConfigurationImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/PowerConfigurationImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/PowerConfigurationImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,155 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.PowerConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.impl.general.PowerConfigurationCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public class PowerConfigurationImpl implements PowerConfiguration{
+	
+	private final PowerConfigurationCluster cluster;
+	private final Attribute batteryRating;
+	private final Attribute batteryAlarm;
+	private final Attribute batteryManufacturer;
+	private final Attribute batteryQty;
+	private final Attribute batteryRatedVoltage;
+	private final Attribute batterySize;
+	private final Attribute batteryVoltage;
+	private final Attribute batteryVoltageMin;
+	private final Attribute mainsAlarm;
+	private final Attribute mainsDwell;
+	private final Attribute mainsHz;
+	private final Attribute mainsV;
+	private final Attribute mainsVMax;
+	private final Attribute mainsVMin;
+	
+	public PowerConfigurationImpl(ZigBeeDevice zbDevice){
+		cluster = new PowerConfigurationCluster(zbDevice);
+		batteryRating = cluster.getAttributeBatteryAHrRating();
+		batteryAlarm = cluster.getAttributeBatteryAlarmMask();
+		batteryManufacturer = cluster.getAttributeBatteryManufacturer();
+		batteryQty = cluster.getAttributeBatteryQuantity();
+		batteryRatedVoltage = cluster.getAttributeBatteryRatedVoltage();
+		batterySize = cluster.getAttributeBatterySize();
+		batteryVoltage = cluster.getAttributeBatteryVoltage();
+		batteryVoltageMin = cluster.getAttributeBatteryVoltageMinThreshold();
+		mainsAlarm = cluster.getAttributeMainsAlarmMask();
+		mainsDwell = cluster.getAttributeMainsDwellTripPoint();
+		mainsHz = cluster.getAttributeMainsFrequency();
+		mainsV = cluster.getAttributeMainsVoltage();
+		mainsVMax = cluster.getAttributeMainsVoltageMaxThreshold();
+		mainsVMin = cluster.getAttributeMainsVoltageMinThreshold();
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return cluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return cluster.getId();
+	}
+
+	public String getName() {
+		return cluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = cluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return cluster.getAvailableAttributes();
+	}
+
+	public Attribute getBatteryAHrRating() {
+	    return batteryRating;
+	}
+
+	public Attribute getBatteryAlarmMask() {
+	    return batteryAlarm;
+	}
+
+	public Attribute getBatteryManufacturer() {
+	    return batteryManufacturer;
+	}
+
+	public Attribute getBatteryQuantity() {
+	    return batteryQty;
+	}
+
+	public Attribute getBatteryRatedVoltage() {
+	    return batteryRatedVoltage;
+	}
+
+	public Attribute getBatterySize() {
+	    return batterySize;
+	}
+
+	public Attribute getBatteryVoltage() {
+	    return batteryVoltage;
+	}
+
+	public Attribute getBatteryVoltageMinThreshold() {
+	    return batteryVoltageMin;
+	}
+
+	public Attribute getMainsAlarmMask() {
+	    return mainsAlarm;
+	}
+
+	public Attribute getMainsDwellTripPoint() {
+	    return mainsDwell;
+	}
+
+	public Attribute getMainsFrequency() {
+	    return mainsHz;
+	}
+
+	public Attribute getMainsVoltage() {
+	    return mainsV;
+	}
+
+	public Attribute getMainsVoltageMaxThreshold() {
+	    return mainsVMax;
+	}
+
+	public Attribute getMainsVoltageMinThreshold() {
+	    return mainsVMin;
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/PowerConfigurationImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/RelativeHumidityMeasurementImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/RelativeHumidityMeasurementImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/RelativeHumidityMeasurementImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,125 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.Activator;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.RelativeHumidityMeasurement;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.MeasuredValueListener;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.ToleranceListener;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.MeasuredValueBridgeListeners;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.ToleranceBridgeListeners;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.impl.measureament_sensing.RelativeHumidityMeasurementCluster;
+
+/**
+ * Implementation of the {@link RelativeHumidityMeasurement} interface, that wraps the
+ * {@link RelativeHumidityMeasurementCluster}.
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public class RelativeHumidityMeasurementImpl implements RelativeHumidityMeasurement {
+	
+	private RelativeHumidityMeasurementCluster relativeHumidityMeasurementCluster; 
+	private Attribute measuredValue;
+	private Attribute minMeasuredValue;
+	private Attribute maxMeasuredValue;
+	private Attribute tolerance;
+	
+	private final MeasuredValueBridgeListeners measureBridge;	
+	private final ToleranceBridgeListeners toleranceBridge;
+	
+	public RelativeHumidityMeasurementImpl(ZigBeeDevice zbDevice){
+		relativeHumidityMeasurementCluster = new RelativeHumidityMeasurementCluster(zbDevice);
+		measuredValue = relativeHumidityMeasurementCluster.getAttributeMeasuredValue();
+		minMeasuredValue = relativeHumidityMeasurementCluster.getAttributeMinMeasuredValue();
+		maxMeasuredValue = relativeHumidityMeasurementCluster.getAttributeMaxMeasuredValue();
+		tolerance = relativeHumidityMeasurementCluster.getAttributeTolerance();
+		
+		toleranceBridge = new ToleranceBridgeListeners(Activator.getConfiguration(), tolerance, this);
+		measureBridge = new MeasuredValueBridgeListeners(Activator.getConfiguration(), measuredValue, this);
+	}
+
+	public Attribute getMaxMeasuredValue() {
+		return maxMeasuredValue;
+	}
+
+	public Attribute getMeasuredValue() {
+		return measuredValue;
+	}
+
+	public Attribute getMinMeasuredValue() {
+		return minMeasuredValue;
+	}
+
+	public Attribute getTolerance() {
+		return tolerance;
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return relativeHumidityMeasurementCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return relativeHumidityMeasurementCluster.getId();
+	}
+
+	public String getName() {
+		return relativeHumidityMeasurementCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = relativeHumidityMeasurementCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return relativeHumidityMeasurementCluster.getAvailableAttributes();
+	}
+
+	public boolean subscribe(MeasuredValueListener listener) {
+		return measureBridge.subscribe(listener);
+	}
+
+	public boolean subscribe(ToleranceListener listener) {
+		return toleranceBridge.subscribe(listener);
+	}
+
+	public boolean unsubscribe(MeasuredValueListener listener) {
+		return measureBridge.unsubscribe(listener);
+	}
+
+	public boolean unsubscribe(ToleranceListener listener) {
+		return toleranceBridge.unsubscribe(listener);
+	}
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/RelativeHumidityMeasurementImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/ScenesImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/ScenesImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/ScenesImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,180 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZigBeeClusterException;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.AddScenePayload;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.AddSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.GetSceneMembershipResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.RemoveAllSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.RemoveSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.StoreSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.api.general.scenes.ViewSceneResponse;
+import it.cnr.isti.zigbee.zcl.library.impl.general.ScenesCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class ScenesImpl implements Scenes {
+	
+	private ScenesCluster scenesCluster;
+	private Attribute sceneCount;
+	private Attribute currentScene;
+	private Attribute currentGroup;
+	private Attribute sceneValid;
+	private Attribute nameSupport;
+	private Attribute lastConfiguredBy;
+	public ScenesImpl(ZigBeeDevice zbDevice){
+		scenesCluster = new ScenesCluster(zbDevice);
+		sceneCount = scenesCluster.getAttributeSceneCount();
+		currentScene = scenesCluster.getAttributeCurrentScene();
+		currentGroup = scenesCluster.getAttributeCurrentGroup();
+		sceneValid = scenesCluster.getAttributeSceneValid();
+		nameSupport = scenesCluster.getAttributeNameSupport();
+		lastConfiguredBy = scenesCluster.getAttributeLastConfiguredBy();
+		
+	}
+
+	public AddSceneResponse addScene(AddScenePayload scenepayload) throws ZigBeeHAException{
+		try {
+			AddSceneResponse response = (AddSceneResponse)scenesCluster.addScene(scenepayload);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Attribute getCurrentGroup() {
+		return currentGroup;
+	}
+
+	public Attribute getCurrentScene() {
+		return currentScene;
+	}
+
+	public Attribute getLastConfiguredBy() {
+		return lastConfiguredBy;
+	}
+
+	public Attribute getNameSupport() {
+		return nameSupport;
+	}
+
+	public Attribute getSceneCount() {
+		return sceneCount;
+	}
+
+	public GetSceneMembershipResponse getSceneMembership(int groupId) throws ZigBeeHAException{
+		try {
+			GetSceneMembershipResponse response = (GetSceneMembershipResponse)scenesCluster.getSceneMembership(groupId);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Attribute getSceneValid() {
+		return sceneValid;
+	}
+
+	public void recallScene(int groupId, short sceneId) throws ZigBeeHAException{
+		try {
+			scenesCluster.recallScene(groupId, sceneId);
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+
+	}
+
+	public RemoveAllSceneResponse removeAllScene() throws ZigBeeHAException{
+		try {
+			RemoveAllSceneResponse response = (RemoveAllSceneResponse)scenesCluster.removeAllScene();
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public RemoveSceneResponse removeScene(int groupId, short sceneId) throws ZigBeeHAException{
+		try {
+			RemoveSceneResponse response = (RemoveSceneResponse)scenesCluster.removeScene(groupId, sceneId);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public StoreSceneResponse storeScene(int groupId, short sceneId) throws ZigBeeHAException{
+		try {
+			StoreSceneResponse response = (StoreSceneResponse)scenesCluster.storeScene(groupId, sceneId);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public ViewSceneResponse viewScene(int groupId, short sceneId) throws ZigBeeHAException{
+		try {
+			ViewSceneResponse response = (ViewSceneResponse)scenesCluster.viewScene(groupId, sceneId);
+			return response;
+		} catch (ZigBeeClusterException e) {
+			throw new ZigBeeHAException(e);
+		}
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return scenesCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return scenesCluster.getId();
+	}
+
+	public String getName() {
+		return scenesCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = scenesCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return scenesCluster.getAvailableAttributes();
+	}
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/ScenesImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TemperatureMeasurementImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TemperatureMeasurementImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TemperatureMeasurementImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,123 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.Activator;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.TemperatureMeasurement;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.MeasuredValueListener;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.ToleranceListener;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.MeasuredValueBridgeListeners;
+import it.cnr.isti.zigbee.ha.cluster.impl.event.ToleranceBridgeListeners;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.impl.measureament_sensing.TemperatureMeasurementCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class TemperatureMeasurementImpl implements TemperatureMeasurement {
+	
+	private final TemperatureMeasurementCluster temperatureMeasurementCluster; 
+	private final Attribute measuredValue;
+	private final Attribute minMeasuredValue;
+	private final Attribute maxMeasuredValue;
+	private final Attribute tolerance;
+	
+	private final MeasuredValueBridgeListeners measureBridge;	
+	private final ToleranceBridgeListeners toleranceBridge;
+	
+	public TemperatureMeasurementImpl(ZigBeeDevice zbDevice){
+		temperatureMeasurementCluster = new TemperatureMeasurementCluster(zbDevice);
+		measuredValue = temperatureMeasurementCluster.getAttributeMeasuredValue();
+		minMeasuredValue = temperatureMeasurementCluster.getAttributeMinMeasuredValue();
+		maxMeasuredValue = temperatureMeasurementCluster.getAttributeMaxMeasuredValue();
+		tolerance = temperatureMeasurementCluster.getAttributeTolerance();
+		
+		toleranceBridge = new ToleranceBridgeListeners(Activator.getConfiguration(), tolerance, this);
+		measureBridge = new MeasuredValueBridgeListeners(Activator.getConfiguration(), measuredValue, this);
+	}
+
+	public Attribute getMaxMeasuredValue() {
+		return maxMeasuredValue;
+	}
+
+	public Attribute getMeasuredValue() {
+		return measuredValue;
+	}
+
+	public Attribute getMinMeasuredValue() {
+		return minMeasuredValue;
+	}
+
+	public Attribute getTolerance() {
+		return tolerance;
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return temperatureMeasurementCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return temperatureMeasurementCluster.getId();
+	}
+
+	public String getName() {
+		return temperatureMeasurementCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = temperatureMeasurementCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return temperatureMeasurementCluster.getAvailableAttributes();
+	}
+
+	public boolean subscribe(MeasuredValueListener listener) {
+		return measureBridge.subscribe(listener);
+	}
+
+	public boolean subscribe(ToleranceListener listener) {
+		return toleranceBridge.subscribe(listener);
+	}
+
+	public boolean unsubscribe(MeasuredValueListener listener) {
+		return measureBridge.unsubscribe(listener);
+	}
+
+	public boolean unsubscribe(ToleranceListener listener) {
+		return toleranceBridge.unsubscribe(listener);
+	}
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TemperatureMeasurementImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TimeImpl.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TimeImpl.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TimeImpl.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,85 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Time;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.impl.general.TimeCluster;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class TimeImpl implements Time {
+	
+	private TimeCluster timeCluster;
+	private Attribute time;  
+	private Attribute timeStatus;
+	
+	public TimeImpl(ZigBeeDevice zbDevice){
+		timeCluster = new TimeCluster(zbDevice);
+		time = timeCluster.getAttributeTime();
+		timeStatus = timeCluster.getAttributeTimeStatus();
+	}
+
+	public Attribute getTime() {
+		return time;
+	}
+
+	public Attribute getTimeStatus() {
+		return timeStatus;
+	}
+
+	public Subscription[] getActiveSubscriptions() {
+		return timeCluster.getActiveSubscriptions();
+	}
+
+	public int getId() {
+		return timeCluster.getId();
+	}
+
+	public String getName() {
+		return timeCluster.getName();
+	}
+
+	public Attribute getAttribute(int id) {		
+		Attribute[] attributes = timeCluster.getAvailableAttributes();
+		for (int i = 0; i < attributes.length; i++) {
+			if( attributes[i].getId() == id ) 
+				return attributes[i];
+		}
+		return null;
+	}
+
+	public Attribute[] getAttributes() {
+		return timeCluster.getAvailableAttributes();
+	}
+	
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/TimeImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/CurrentLevelBridgeListeners.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/CurrentLevelBridgeListeners.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/CurrentLevelBridgeListeners.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,124 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.event.CurrentLevelEvent;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.event.CurrentLevelListener;
+import it.cnr.isti.zigbee.ha.driver.core.ReportingConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.core.AnalogSubscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.ReportListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.List;
+
+/**
+ * Default implementation of the delegator class that handles the eventing of the {@link CurrentLevelListener} 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public class CurrentLevelBridgeListeners implements ReportListener {
+
+	private class CurrentLevelEventImpl implements CurrentLevelEvent{
+		
+		private final Cluster source;
+		private final int event;
+		
+		public CurrentLevelEventImpl(Cluster cluster, Integer value) {
+			source = cluster;
+			event = value.intValue(); 
+		}
+
+		public int getEvent() {
+			return event;
+		}
+
+		public Cluster getSource() {
+			return source;
+		}
+	}
+	
+	private final Attribute bridged;
+	private final ArrayList<CurrentLevelListener> listeners = new ArrayList<CurrentLevelListener>();
+	private final Cluster cluster;
+	private final ReportingConfiguration configuration;
+
+	public CurrentLevelBridgeListeners(final ReportingConfiguration conf, final Attribute attribute, final Cluster c) {
+		bridged = attribute;
+		cluster = c;
+		configuration = conf;
+	}
+
+	public void receivedReport(Dictionary<Attribute, Object> reports) {
+		if (reports.get(bridged) == null) {
+			return;
+		}
+		synchronized (listeners) {
+			for (CurrentLevelListener listener : listeners) {
+				listener.changedCurrentLevel(new CurrentLevelEventImpl(cluster, (Integer) reports.get(bridged)));
+			}
+		}
+	}
+	
+	public List<CurrentLevelListener> getListeners(){
+		return listeners;
+	}
+
+	public boolean subscribe(CurrentLevelListener listener) {
+		synchronized (listeners) {
+			if ( listeners.size() == 0 ) {
+				AnalogSubscription subscription = (AnalogSubscription) bridged.getSubscription();
+				if ( configuration.getReportingOverwrite() || subscription.isActive() == false ) {
+					subscription.setMaximumReportingInterval(configuration.getReportingMaximum());
+					subscription.setMinimumReportingInterval(configuration.getReportingMinimum());
+					subscription.setReportableChange(configuration.getReportingChange());
+					subscription.updateConfiguration();
+				}
+				if ( subscription.addReportListner(this) == false ) {
+					return false;
+				}
+			}
+			return listeners.add(listener);
+		}
+	}
+	
+	public boolean unsubscribe(CurrentLevelListener listener) {
+		synchronized (listeners) {
+			listeners.remove(listener);
+			if ( listeners.size() == 0 ) {
+				Subscription subscription = bridged.getSubscription();
+				if ( subscription.getReportListenersCount() == 1 ){
+					subscription.clear();
+				}
+			}
+		}
+		return true;
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/CurrentLevelBridgeListeners.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/MeasuredValueBridgeListeners.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/MeasuredValueBridgeListeners.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/MeasuredValueBridgeListeners.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,124 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.MeasuredValueEvent;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.MeasuredValueListener;
+import it.cnr.isti.zigbee.ha.driver.core.ReportingConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.core.AnalogSubscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.ReportListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.List;
+
+/**
+ * Default implementation of the delegator class that handles the eventing of the {@link MeasuredValueListener} 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public class MeasuredValueBridgeListeners implements ReportListener {
+
+	private class MeasuredValueEventImpl implements MeasuredValueEvent{
+		
+		private final Cluster source;
+		private final int event;
+		
+		public MeasuredValueEventImpl(Cluster cluster, Integer value) {
+			source = cluster;
+			event = value.intValue(); 
+		}
+
+		public int getEvent() {
+			return event;
+		}
+
+		public Cluster getSource() {
+			return source;
+		}
+	}
+	
+	private final Attribute bridged;
+	private final ArrayList<MeasuredValueListener> listeners = new ArrayList<MeasuredValueListener>();
+	private final Cluster cluster;
+	private final ReportingConfiguration configuration;
+
+	public MeasuredValueBridgeListeners(final ReportingConfiguration conf, final Attribute attribute, final Cluster c) {
+		bridged = attribute;
+		cluster = c;
+		configuration = conf;
+	}
+
+	public void receivedReport(Dictionary<Attribute, Object> reports) {
+		if (reports.get(bridged) == null) {
+			return;
+		}
+		synchronized (listeners) {
+			for (MeasuredValueListener listener : listeners) {
+				listener.changedMeasuredValue(new MeasuredValueEventImpl(cluster, (Integer) reports.get(bridged)));
+			}
+		}
+	}
+	
+	public List<MeasuredValueListener> getListeners(){
+		return listeners;
+	}
+
+	public boolean subscribe(MeasuredValueListener listener) {
+		synchronized (listeners) {
+			if ( listeners.size() == 0 ) {
+				AnalogSubscription subscription = (AnalogSubscription) bridged.getSubscription();
+				if ( configuration.getReportingOverwrite() || subscription.isActive() == false ) {
+					subscription.setMaximumReportingInterval(configuration.getReportingMaximum());
+					subscription.setMinimumReportingInterval(configuration.getReportingMinimum());
+					subscription.setReportableChange(configuration.getReportingChange());
+					subscription.updateConfiguration();
+				}
+				if ( subscription.addReportListner(this) == false ) {
+					return false;
+				}
+			}
+			return listeners.add(listener);
+		}
+	}
+	
+	public boolean unsubscribe(MeasuredValueListener listener) {
+		synchronized (listeners) {
+			listeners.remove(listener);
+			if ( listeners.size() == 0 ) {
+				Subscription subscription = bridged.getSubscription();
+				if ( subscription.getReportListenersCount() == 1 ){
+					subscription.clear();
+				}
+			}
+		}
+		return true;
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/MeasuredValueBridgeListeners.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OccupancyBridgeListeners.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OccupancyBridgeListeners.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OccupancyBridgeListeners.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,122 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.OccupancyEvent;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.OccupancyListener;
+import it.cnr.isti.zigbee.ha.driver.core.ReportingConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.ReportListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.List;
+
+/**
+ * Default implementation of the delegator class that handles the eventing of the {@link OccupancyListener} 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public class OccupancyBridgeListeners implements ReportListener {
+
+	private class OccupancyEventImpl implements OccupancyEvent{
+		
+		private final Cluster source;
+		private final int event;
+		
+		public OccupancyEventImpl(Cluster cluster, Integer value) {
+			source = cluster;
+			event = value; 
+		}
+
+		public int getEvent() {
+			return event;
+		}
+
+		public Cluster getSource() {
+			return source;
+		}
+	}
+	
+	private final Attribute bridged;
+	private final ArrayList<OccupancyListener> listeners = new ArrayList<OccupancyListener>();
+	private final Cluster cluster;
+	private final ReportingConfiguration configuration;
+	
+	public OccupancyBridgeListeners(final ReportingConfiguration conf, final Attribute attribute, final Cluster c) {
+		bridged = attribute;
+		cluster = c;
+		configuration = conf;
+	}
+	
+	public void receivedReport(Dictionary<Attribute, Object> reports) {
+		if (reports.get(bridged) == null) {
+			return;
+		}
+		synchronized (listeners) {
+			for (OccupancyListener listener : listeners) {
+				listener.changedOccupancy(new OccupancyEventImpl(cluster, (Integer) reports.get(bridged)));
+			}
+		}
+	}
+	
+	public List<OccupancyListener> getListeners(){
+		return listeners;
+	}
+
+	public boolean subscribe(OccupancyListener listener) {
+		synchronized (listeners) {
+			if ( listeners.size() == 0 ) {
+				Subscription subscription = bridged.getSubscription();
+				if ( configuration.getReportingOverwrite() || subscription.isActive() == false ) {
+					subscription.setMaximumReportingInterval(configuration.getReportingMaximum());
+					subscription.setMinimumReportingInterval(configuration.getReportingMinimum());
+					subscription.updateConfiguration();
+				}
+				if ( subscription.addReportListner(this) == false ) {
+					return false;
+				}
+			}
+			return listeners.add(listener);
+		}
+	}
+	
+	public boolean unsubscribe(OccupancyListener listener) {
+		synchronized (listeners) {
+			listeners.remove(listener);
+			if ( listeners.size() == 0 ) {
+				Subscription subscription = bridged.getSubscription();
+				if ( subscription.getReportListenersCount() == 1 ){
+					subscription.clear();
+				}
+			}
+		}
+		return true;
+	}	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OccupancyBridgeListeners.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OnOffBridgeListeners.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OnOffBridgeListeners.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OnOffBridgeListeners.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,122 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.event.OnOffEvent;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.event.OnOffListener;
+import it.cnr.isti.zigbee.ha.driver.core.ReportingConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.ReportListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.List;
+
+/**
+ * Default implementation of the delegator class that handles the eventing of the {@link OnOffListener} 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public class OnOffBridgeListeners implements ReportListener {
+
+	private class OnOffEventImpl implements OnOffEvent{
+		
+		private final Cluster source;
+		private final boolean event;
+		
+		public OnOffEventImpl(Cluster cluster, Boolean value) {
+			source = cluster;
+			event = value; 
+		}
+
+		public boolean getEvent() {
+			return event;
+		}
+
+		public Cluster getSource() {
+			return source;
+		}
+	}
+	
+	private final Attribute bridged;
+	private final ArrayList<OnOffListener> listeners = new ArrayList<OnOffListener>();
+	private final Cluster cluster;
+	private final ReportingConfiguration configuration;
+	
+	public OnOffBridgeListeners(final ReportingConfiguration conf, final Attribute attribute, final Cluster c) {
+		bridged = attribute;
+		cluster = c;
+		configuration = conf;
+	}
+
+	public void receivedReport(Dictionary<Attribute, Object> reports) {
+		if (reports.get(bridged) == null) {
+			return;
+		}
+		synchronized (listeners) {
+			for (OnOffListener listener : listeners) {
+				listener.changedOnOff(new OnOffEventImpl(cluster, (Boolean) reports.get(bridged)));
+			}
+		}
+	}
+	
+	public List<OnOffListener> getListeners(){
+		return listeners;
+	}
+
+	public boolean subscribe(OnOffListener listener) {
+		synchronized (listeners) {
+			if ( listeners.size() == 0 ) {
+				Subscription subscription = bridged.getSubscription();
+				if ( configuration.getReportingOverwrite() || subscription.isActive() == false ) {
+					subscription.setMaximumReportingInterval(configuration.getReportingMaximum());
+					subscription.setMinimumReportingInterval(configuration.getReportingMinimum());
+					subscription.updateConfiguration();
+				}
+				if ( subscription.addReportListner(this) == false ) {
+					return false;
+				}
+			}
+			return listeners.add(listener);
+		}
+	}
+	
+	public boolean unsubscribe(OnOffListener listener) {
+		synchronized (listeners) {
+			listeners.remove(listener);
+			if ( listeners.size() == 0 ) {
+				Subscription subscription = bridged.getSubscription();
+				if ( subscription.getReportListenersCount() == 1 ){
+					subscription.clear();
+				}
+			}
+		}
+		return true;
+	}	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/OnOffBridgeListeners.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/ToleranceBridgeListeners.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/ToleranceBridgeListeners.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/ToleranceBridgeListeners.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,125 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.cluster.impl.event;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.ToleranceEvent;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.event.ToleranceListener;
+import it.cnr.isti.zigbee.ha.driver.core.ReportingConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.core.AnalogSubscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.Attribute;
+import it.cnr.isti.zigbee.zcl.library.api.core.ReportListener;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.List;
+
+/**
+ * Default implementation of the delegator class that handles the eventing of the {@link ToleranceListener} 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public class ToleranceBridgeListeners implements ReportListener {
+
+	private class ToleranceEventImpl implements ToleranceEvent{
+		
+		private final Cluster source;
+		private final int event;
+		
+		public ToleranceEventImpl(Cluster cluster, Integer value) {
+			source = cluster;
+			event = value.intValue(); 
+		}
+
+		public int getEvent() {
+			return event;
+		}
+
+		public Cluster getSource() {
+			return source;
+		}
+	}
+	
+	private final Attribute bridged;
+	private final ArrayList<ToleranceListener> listeners = new ArrayList<ToleranceListener>();
+	private final Cluster cluster;
+	private final ReportingConfiguration configuration;
+	
+	public ToleranceBridgeListeners(final ReportingConfiguration conf, final Attribute attribute, final Cluster c) {
+		bridged = attribute;
+		cluster = c;
+		configuration = conf;
+	}
+
+	public void receivedReport(Dictionary<Attribute, Object> reports) {
+		if (reports.get(bridged) == null) {
+			return;
+		}
+		synchronized (listeners) {
+			for (ToleranceListener listener : listeners) {
+				listener.changedTolerance(new ToleranceEventImpl(cluster, (Integer) reports.get(bridged)));
+			}
+		}
+	}
+	
+	public List<ToleranceListener> getListeners(){
+		return listeners;
+	}
+	
+	public boolean subscribe(ToleranceListener listener) {
+		synchronized (listeners) {
+			if ( listeners.size() == 0 ) {
+				AnalogSubscription subscription = (AnalogSubscription) bridged.getSubscription();
+				if ( configuration.getReportingOverwrite() || subscription.isActive() == false ) {
+					subscription.setMaximumReportingInterval(configuration.getReportingMaximum());
+					subscription.setMinimumReportingInterval(configuration.getReportingMinimum());
+					subscription.setReportableChange(configuration.getReportingChange());
+					subscription.updateConfiguration();
+				}
+				if ( subscription.addReportListner(this) == false ) {
+					return false;
+				}
+			}
+			return listeners.add(listener);
+		}
+	}
+	
+	public boolean unsubscribe(ToleranceListener listener) {
+		synchronized (listeners) {
+			listeners.remove(listener);
+			if ( listeners.size() == 0 ) {
+				Subscription subscription = bridged.getSubscription();
+				if ( subscription.getReportListenersCount() == 1 ){
+					subscription.clear();
+				}
+			}
+		}
+		return true;
+	}	
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/cluster/impl/event/ToleranceBridgeListeners.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/LevelControlSwitch.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/LevelControlSwitch.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/LevelControlSwitch.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,100 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.generic;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Identify;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.LevelControl;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface LevelControlSwitch extends HADevice{
+	
+	public static final int DEVICE_ID = 0x0001;
+	public static final String NAME = "Level Control Switch";
+	
+	
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+		HAProfile.ON_OFF_SWITCH_CONFIGURATION,HAProfile.ON_OFF,HAProfile.GROUPS,HAProfile.SCENES,HAProfile.LEVEL_CONTROL,HAProfile.IDENTIFY
+	});
+	public static final int[] OPTIONAL = HADevice.OPTIONAL;
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+	
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOff} 
+	 *  
+	 * @return the {@link OnOff} cluster object
+	 */
+	public OnOff getOnOff();
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Scenes} 
+	 *  
+	 * @return the {@link Scenes} cluster object
+	 */
+	public Scenes getScenes();
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOffSwitchConfiguration} 
+	 *  
+	 * @return the {@link OnOffSwitchConfiguration} cluster object
+	 */
+	public OnOffSwitchConfiguration getOnOffSwitchConfiguration();
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Identify} 
+	 *  
+	 * @return the {@link Identify} cluster object
+	 */
+	public Identify getIdentify();
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Groups} 
+	 *  
+	 * @return the {@link Groups} cluster object
+	 */
+	public Groups getGroups();
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link LevelControl} 
+	 *  
+	 * @return the {@link LevelControl} cluster object
+	 */
+	public LevelControl getLevelControl();
+
+	
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/LevelControlSwitch.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/MainsPowerOutlet.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/MainsPowerOutlet.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/MainsPowerOutlet.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,33 @@
+package it.cnr.isti.zigbee.ha.device.api.generic;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+public interface MainsPowerOutlet extends HADevice {
+
+	public static final int DEVICE_ID = 0x0009;
+	public static final String NAME = "Mains Power Outlet";
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+			HAProfile.ON_OFF, HAProfile.SCENES, HAProfile.GROUPS
+	});
+	public static final int[] OPTIONAL = HADevice.OPTIONAL;
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOffSwitchConfiguration} 
+	 *  
+	 * @return the {@link OnOffSwitchConfiguration} cluster object
+	 */
+	public OnOff getOnOff();
+	
+	public Scenes getScenes();
+	
+	public Groups getGroups();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/MainsPowerOutlet.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffOutput.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffOutput.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffOutput.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,77 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.generic;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+
+/**
+ * This class represent the <b>On/Off Output</b> Cluster as defined by the document:<br>
+ * <i>ZigBee Cluster Library</i> public release version 075123r01ZB
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.2.0
+ *
+ */
+public interface OnOffOutput extends HADevice{
+	
+	public static final int DEVICE_ID = 0x0002;
+	public static final String NAME = "On/Off Output";
+	
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+		HAProfile.BASIC,HAProfile.IDENTIFY,HAProfile.ON_OFF,HAProfile.GROUPS,HAProfile.SCENES
+	});
+	public static final int[] OPTIONAL = HADevice.OPTIONAL;
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOff} 
+	 *  
+	 * @return the {@link OnOff} cluster object
+	 */
+	public OnOff getOnOff();
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Scenes} 
+	 *  
+	 * @return the {@link Scenes} cluster object
+	 */
+	public Scenes getScenes();
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Groups} 
+	 *  
+	 * @return the {@link Groups} cluster object
+	 */
+	public Groups getGroups();
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffOutput.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffSwitch.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffSwitch.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffSwitch.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,56 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.generic;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface OnOffSwitch extends HADevice{
+
+	public static final int DEVICE_ID = 0x0000;
+	public static final String NAME = "OnOff Switch";
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+			HAProfile.ON_OFF_SWITCH_CONFIGURATION
+	});
+	public static final int[] OPTIONAL = HADevice.OPTIONAL;
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOffSwitchConfiguration} 
+	 *  
+	 * @return the {@link OnOffSwitchConfiguration} cluster object
+	 */
+	public OnOffSwitchConfiguration getOnOffSwitchConfiguration();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/generic/OnOffSwitch.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/hvac/TemperatureSensor.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/hvac/TemperatureSensor.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/hvac/TemperatureSensor.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,63 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.hvac;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.TemperatureMeasurement;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+/**
+ * This class represent the <b>On/off Light</b> Cluster as defined by the document:<br>
+ * <i>ZigBee Cluster Library</i> public release version 075123r01ZB
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public interface TemperatureSensor extends HADevice {
+
+	public static final int DEVICE_ID = 0x0302;
+	public static final String NAME = "Temperature Sensor";
+	
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+		HAProfile.TEMPERATURE_MEASUREMENT
+	});
+	
+	public static final int[] OPTIONAL = ArraysUtil.append(HADevice.OPTIONAL, new int[]{
+	});
+	
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link TemperatureMeasurement} 
+	 *  
+	 * @return the {@link TemperatureMeasurement} cluster object
+	 */
+	public TemperatureMeasurement getTemperatureMeasurement();
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/hvac/TemperatureSensor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/ColorDimmableLight.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/ColorDimmableLight.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/ColorDimmableLight.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,34 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.lighting;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public class ColorDimmableLight {
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/ColorDimmableLight.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/DimmableLight.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/DimmableLight.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/DimmableLight.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,90 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.lighting;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.LevelControl;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.OccupacySensing;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public interface DimmableLight extends HADevice{
+	
+	public static final int DEVICE_ID = 0x0101;
+	public static final String NAME = "Dimmable Light";
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+		HAProfile.ON_OFF,HAProfile.LEVEL_CONTROL,HAProfile.SCENES,HAProfile.GROUPS
+	});
+	public static final int[] OPTIONAL = ArraysUtil.append(HADevice.OPTIONAL, new int[]{
+		HAProfile.OCCUPANCY_SENSING
+	});
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+	
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOff} 
+	 *  
+	 * @return the {@link OnOff} cluster object
+	 */
+	public OnOff getOnOff();
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Scenes} 
+	 *  
+	 * @return the {@link Scenes} cluster object
+	 */
+	public Scenes getScenes();
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Groups} 
+	 *  
+	 * @return the {@link Groups} cluster object
+	 */
+	public Groups getGroups();
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link LevelControl} 
+	 *  
+	 * @return the {@link LevelControl} cluster object
+	 */
+	public LevelControl getLevelControl();
+
+	/**
+	 * Access method for the <b>Optional</b> cluster: {@link OccupacySensing} 
+	 *  
+	 * @return the {@link OccupacySensing} cluster object if implemented by the device, otherwise <code>null</code>
+	 */
+	public abstract OccupacySensing getOccupacySensing();
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/DimmableLight.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/LightSensor.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/LightSensor.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/LightSensor.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,21 @@
+package it.cnr.isti.zigbee.ha.device.api.lighting;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.IlluminanceMeasurement;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+public interface LightSensor extends HADevice {
+
+	public static final int DEVICE_ID = 0x0106;
+	public static final String NAME = "Light Sensor";
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+			HAProfile.ILLUMINANCE_MEASUREMENT
+	});
+	public static final int[] OPTIONAL = ArraysUtil.append(HADevice.OPTIONAL, new int[]{
+	});
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+
+	public IlluminanceMeasurement getIlluminanceMeasurement();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/LightSensor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OccupancySensor.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OccupancySensor.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OccupancySensor.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,60 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.lighting;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.OccupacySensing;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+
+/**
+ * This class represent the <b>Occupancy Sensor</b> Cluster as defined by the document:<br>
+ * <i>ZigBee Cluster Library</i> public release version 075123r01ZB
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.2.0
+ *
+ */
+public interface OccupancySensor extends HADevice{
+	
+	public static final int DEVICE_ID = 0x0107;
+	public static final String NAME = "Occupancy Sensor";
+	
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+		HAProfile.BASIC,HAProfile.IDENTIFY,HAProfile.OCCUPANCY_SENSING
+	});
+	public static final int[] OPTIONAL = HADevice.OPTIONAL;
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OccupacySensing} 
+	 *  
+	 * @return the {@link OccupacySensing} cluster implemented by the device
+	 */
+	public  OccupacySensing getOccupacySensing();	
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OccupancySensor.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLight.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLight.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLight.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,88 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.lighting;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.OccupacySensing;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+
+/**
+ * This class represent the <b>On/off Light</b> Cluster as defined by the document:<br>
+ * <i>ZigBee Cluster Library</i> public release version 075123r01ZB
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:alessandro.giari at isti.cnr.it">Alessandro Giari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface OnOffLight extends HADevice{
+	
+	public static final int DEVICE_ID = 0x0100;
+	public static final String NAME = "OnOff Light";
+	
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+		HAProfile.ON_OFF,HAProfile.GROUPS,HAProfile.SCENES
+	});
+	public static final int[] OPTIONAL = ArraysUtil.append(HADevice.OPTIONAL, new int[]{
+		HAProfile.OCCUPANCY_SENSING
+	});
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOff} 
+	 *  
+	 * @return the {@link OnOff} cluster object
+	 */
+	public OnOff getOnOff();
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Scenes} 
+	 *  
+	 * @return the {@link Scenes} cluster object
+	 */
+	public Scenes getScenes();
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Groups} 
+	 *  
+	 * @return the {@link Groups} cluster object
+	 */
+	public Groups getGroups();
+
+	/**
+	 * Access method for the <b>Optional</b> cluster: {@link OccupacySensing} 
+	 *  
+	 * @return the {@link OccupacySensing} cluster object if implemented by the device, otherwise <code>null</code>
+	 */
+	public OccupacySensing getOccupacySensing();	
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLight.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLightSwitch.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLightSwitch.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLightSwitch.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,59 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.api.lighting;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface OnOffLightSwitch extends HADevice{
+
+	public static final int DEVICE_ID = 0x0103;
+	public static final String NAME = "OnOff Light Switch";
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+			HAProfile.ON_OFF_SWITCH_CONFIGURATION
+	});
+	public static final int[] OPTIONAL = HADevice.OPTIONAL;
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOffSwitchConfiguration} 
+	 *  
+	 * @return the {@link OnOffSwitchConfiguration} cluster object
+	 */
+	public OnOffSwitchConfiguration getOnOffSwitchConfiguration();
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/lighting/OnOffLightSwitch.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/security_safety/IAS_Zone.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/security_safety/IAS_Zone.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/security_safety/IAS_Zone.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,27 @@
+package it.cnr.isti.zigbee.ha.device.api.security_safety;
+
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.ha.cluster.glue.security_safety.IASZone;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+
+public interface IAS_Zone extends HADevice {
+
+	public static final int DEVICE_ID = 0x0402;
+	public static final String NAME = "IAS Zone";
+	public static final int[] MANDATORY = ArraysUtil.append(HADevice.MANDATORY, new int[]{
+			HAProfile.IAS_ZONE
+	});
+	public static final int[] OPTIONAL = HADevice.OPTIONAL;
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	public static final int[] CUSTOM = {};
+
+
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link OnOffSwitchConfiguration} 
+	 *  
+	 * @return the {@link OnOffSwitchConfiguration} cluster object
+	 */
+	public IASZone getIASZone();
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/api/security_safety/IAS_Zone.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/factory/OnOffLightFactory.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/factory/OnOffLightFactory.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/factory/OnOffLightFactory.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,70 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.factory;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OnOffLight;
+import it.cnr.isti.zigbee.ha.device.impl.OnOffLightDevice;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceFactoryBase;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @since 0.4.0
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $) *
+ */
+public class OnOffLightFactory extends HADeviceFactoryBase {
+
+
+	public OnOffLightFactory(BundleContext ctx) {
+		super(ctx,OnOffLight.class);
+	}
+
+	private String[] clusters;
+	private String[] implementedInterfaces = { 
+			HADevice.class.getName(), 
+			HADeviceBase.class.getName(),
+			OnOffLight.class.getName()
+	};
+
+	@Override
+	public String getDeviceId() {		
+		return String.valueOf(OnOffLightDevice.DEVICE_ID);
+	}
+
+	@Override
+	public String[] getRefinedInterfaces() {
+		return implementedInterfaces;
+	}
+
+	@Override
+	public HADeviceBase getInstance(ZigBeeDevice zbDevice) throws ZigBeeHAException {
+		return new OnOffLightDevice(ctx,zbDevice);
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/factory/OnOffLightFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/DimmableLightDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/DimmableLightDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/DimmableLightDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,114 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.LevelControl;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.OccupacySensing;
+import it.cnr.isti.zigbee.ha.device.api.lighting.DimmableLight;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public class DimmableLightDevice extends HADeviceBase implements DimmableLight {
+
+	private OnOff onOff;
+	private LevelControl levelControl;
+	private Scenes scenes;
+	private Groups groups;
+	private OccupacySensing occupancySensing;
+	
+	public DimmableLightDevice(BundleContext ctx, ZigBeeDevice zbDevice) throws ZigBeeHAException{
+		super(ctx,zbDevice);
+		levelControl = (LevelControl) addCluster(HAProfile.LEVEL_CONTROL);
+		onOff = (OnOff) addCluster(HAProfile.ON_OFF);
+		groups = (Groups) addCluster(HAProfile.GROUPS);
+		scenes = (Scenes) addCluster(HAProfile.SCENES);
+		occupancySensing = (OccupacySensing) addCluster(HAProfile.OCCUPANCY_SENSING);
+	}
+	
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return DimmableLight.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return DimmableLight.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return DimmableLight.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return DimmableLight.STANDARD;
+		}
+		
+	};
+	
+
+	public  DeviceDescription getDescription() {
+		return DEVICE_DESCRIPTOR;
+	}
+
+	@Override
+	public String getName() {
+		return DimmableLight.NAME;
+	}
+
+	public Groups getGroups() {
+		return groups;
+	}
+
+	public LevelControl getLevelControl() {
+		return levelControl;
+	}
+
+	public OccupacySensing getOccupacySensing() {
+		return occupancySensing;
+	}
+
+	public OnOff getOnOff() {
+		return onOff;
+	}
+
+	public Scenes getScenes() {
+		return scenes;
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/DimmableLightDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/GenericHADevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/GenericHADevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/GenericHADevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,113 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import java.util.ArrayList;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * This class should be used by the refinment driver when there is no device matching the DeviceId<br>
+ * of the service
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public class GenericHADevice extends HADeviceBase {
+	
+	private int[] mandatory;
+	private int[] optional;
+	private int[] standard;
+	private int[] custom;
+	public GenericHADevice(BundleContext ctx,ZigBeeDevice zbDevice) throws ZigBeeHAException{
+		super(ctx,zbDevice);
+		
+		mandatory = new int[0]; // we don't know the device so we cannot distinuish
+		optional = new int[0];
+		
+		int[] clusterIDs = zbDevice.getInputClusters();
+		ArrayList<Integer> standardList = new ArrayList<Integer>();
+		ArrayList<Integer> customList = new ArrayList<Integer>();
+		for (int i = 0; i < clusterIDs.length; i++) {
+//			if (HAProfile.clusters.containsKey(clusterIDs[i])){
+//				standardList.add(clusterIDs[i]);
+//			} else {
+//				customList.add(clusterIDs[i]);
+//			}
+		}
+		standard = new int[standardList.size()];
+		for (int i = 0; i < standard.length; i++) {
+			standard[i] = standardList.get(i).intValue();
+		}
+		custom = new int[customList.size()];
+		for (int i = 0; i < custom.length; i++) {
+			custom[i] = customList.get(i).intValue();
+		}
+		
+		for (int i = 0; i < standard.length; i++) {
+			addCluster(standard[i]);
+		}
+	}
+	
+	
+	final DeviceDescription descriptor =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return custom;
+		}
+
+		public int[] getMandatoryCluster() {
+			return mandatory;
+		}
+
+		public int[] getOptionalCluster() {
+			return optional;
+		}
+
+		public int[] getStandardClusters() {
+			return standard;
+		}
+		
+	};
+	
+	@Override
+	public DeviceDescription getDescription() {
+		return descriptor;
+	}
+
+	@Override
+	public String getName() {
+		return "Geniric HA Device";
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/GenericHADevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/IAS_ZoneDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/IAS_ZoneDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/IAS_ZoneDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,60 @@
+package it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.security_safety.IASZone;
+import it.cnr.isti.zigbee.ha.device.api.security_safety.IAS_Zone;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+public class IAS_ZoneDevice extends HADeviceBase implements IAS_Zone {
+
+	private IASZone IASZone;
+
+	public IAS_ZoneDevice(BundleContext ctx, ZigBeeDevice zbDevice)
+			throws ZigBeeHAException {
+		super(ctx, zbDevice);
+		IASZone = (IASZone) addCluster(HAProfile.IAS_ZONE);
+	}
+
+	public IASZone getIASZone() {
+
+		return IASZone;
+	}
+
+	@Override
+	public String getName() {
+
+		return IASZone.getName();
+	}
+
+	@Override
+	public DeviceDescription getDescription() {
+
+		return DEVICE_DESCRIPTOR;
+	}
+
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return IAS_Zone.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return IAS_Zone.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return IAS_Zone.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return IAS_Zone.STANDARD;
+		}
+
+	};
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/IAS_ZoneDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LevelControlSwitchDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LevelControlSwitchDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LevelControlSwitchDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,122 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Identify;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.LevelControl;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.device.api.generic.LevelControlSwitch;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public class LevelControlSwitchDevice extends HADeviceBase implements
+		LevelControlSwitch {
+	
+	private OnOff onOff;
+	private OnOffSwitchConfiguration onOffSwitchConfiguration;
+	private Groups groups;
+	private Scenes scenes;
+	private LevelControl levelControl;
+	private Identify identify;
+
+	
+	public LevelControlSwitchDevice(BundleContext ctx,ZigBeeDevice zbDevice) throws ZigBeeHAException{
+		super(ctx, zbDevice);
+		onOffSwitchConfiguration = (OnOffSwitchConfiguration) addCluster(HAProfile.ON_OFF_SWITCH_CONFIGURATION);
+		onOff = (OnOff) addCluster(HAProfile.ON_OFF);
+		groups = (Groups) addCluster(HAProfile.GROUPS);
+		scenes = (Scenes) addCluster(HAProfile.SCENES);
+		identify = (Identify) addCluster(HAProfile.IDENTIFY);
+	}
+	
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return LevelControlSwitch.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return LevelControlSwitch.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return LevelControlSwitch.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return LevelControlSwitch.STANDARD;
+		}
+		
+	};
+	
+	@Override
+	public DeviceDescription getDescription() {
+		return DEVICE_DESCRIPTOR;
+	}
+
+	@Override
+	public String getName() {
+		return LevelControlSwitch.NAME;
+	}
+
+	public Groups getGroups() {
+		return groups;
+	}
+
+	public LevelControl getLevelControl() {
+		return levelControl;
+	}
+
+	public OnOff getOnOff() {
+		return onOff;
+	}
+
+	public OnOffSwitchConfiguration getOnOffSwitchConfiguration() {
+		return onOffSwitchConfiguration;
+	}
+
+	public Scenes getScenes() {
+		return scenes;
+	}
+	
+	public Identify getIdentify() {
+		return identify;
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LevelControlSwitchDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LightSensorDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LightSensorDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LightSensorDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,60 @@
+package it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.IlluminanceMeasurement;
+import it.cnr.isti.zigbee.ha.device.api.lighting.LightSensor;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+public class LightSensorDevice extends HADeviceBase implements LightSensor {
+
+	private IlluminanceMeasurement illuminanceMeasurement;
+
+	public LightSensorDevice(BundleContext ctx, ZigBeeDevice zbDevice) throws ZigBeeHAException {
+
+		super(ctx, zbDevice);
+		illuminanceMeasurement = (IlluminanceMeasurement) addCluster(HAProfile.ILLUMINANCE_MEASUREMENT);
+	}
+
+	public IlluminanceMeasurement getIlluminanceMeasurement() {
+
+		return illuminanceMeasurement;
+	}
+
+	@Override
+	public String getName() {
+
+		return LightSensor.NAME;
+	}
+
+	@Override
+	public DeviceDescription getDescription() {
+
+		return DEVICE_DESCRIPTOR;
+	}
+
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return LightSensor.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return LightSensor.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return LightSensor.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return LightSensor.STANDARD;
+		}
+
+	};
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/LightSensorDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/MainsPowerOutletDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/MainsPowerOutletDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/MainsPowerOutletDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,76 @@
+package it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.device.api.generic.MainsPowerOutlet;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+public class MainsPowerOutletDevice extends HADeviceBase implements MainsPowerOutlet {
+
+	private OnOff onOff;
+	private Scenes scenes;
+	private Groups groups;
+
+	public MainsPowerOutletDevice(BundleContext ctx, ZigBeeDevice zbDevice) throws ZigBeeHAException {
+
+		super(ctx, zbDevice);
+		onOff = (OnOff) addCluster(HAProfile.ON_OFF);
+		groups = (Groups) addCluster(HAProfile.GROUPS);
+		scenes = (Scenes) addCluster(HAProfile.SCENES);
+	}
+
+	public OnOff getOnOff() {
+
+		return onOff;
+	}
+
+	public Scenes getScenes() {
+
+		return scenes;
+	}
+
+	public Groups getGroups() {
+
+		return groups;
+	}
+
+	@Override
+	public String getName() {
+
+		return MainsPowerOutlet.NAME;
+	}
+
+	@Override
+	public DeviceDescription getDescription() {
+
+		return DEVICE_DESCRIPTOR;
+	}
+
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return MainsPowerOutlet.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return MainsPowerOutlet.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return MainsPowerOutlet.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return MainsPowerOutlet.STANDARD;
+		}
+
+	};
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/MainsPowerOutletDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OccupancySensorDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OccupancySensorDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OccupancySensorDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,90 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.OccupacySensing;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OccupancySensor;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.2.0
+ *
+ */
+public class OccupancySensorDevice extends HADeviceBase implements OccupancySensor {
+	
+	private OccupacySensing occupancySensing;
+	
+	public  OccupancySensorDevice(BundleContext ctx,ZigBeeDevice zbDevice) throws ZigBeeHAException {
+		super(ctx,zbDevice);
+		occupancySensing = (OccupacySensing) addCluster(HAProfile.OCCUPANCY_SENSING);
+	}
+
+	public OccupacySensing getOccupacySensing() {
+		return occupancySensing;
+	}
+	
+
+	@Override
+	public String getName() {
+		return OccupancySensor.NAME;
+	}
+
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return OccupancySensor.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return OccupancySensor.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return OccupancySensor.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return OccupancySensor.STANDARD;
+		}
+		
+	};
+
+	@Override
+	public DeviceDescription getDescription() {
+		return DEVICE_DESCRIPTOR;
+	}
+
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OccupancySensorDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,112 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.OccupacySensing;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OnOffLight;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class OnOffLightDevice extends HADeviceBase implements OnOffLight {
+	
+	private OnOff onOff;
+	private Scenes scenes;
+	private Groups groups;
+	private OccupacySensing occupancySensing;
+	
+	public  OnOffLightDevice(BundleContext ctx,ZigBeeDevice zbDevice) throws ZigBeeHAException {
+		super(ctx,zbDevice);
+		onOff = (OnOff) addCluster(HAProfile.ON_OFF);
+		groups = (Groups) addCluster(HAProfile.GROUPS);
+		scenes = (Scenes) addCluster(HAProfile.SCENES);
+		occupancySensing = (OccupacySensing) addCluster(HAProfile.OCCUPANCY_SENSING);
+	}
+
+
+	public Groups getGroups() {
+		return groups;
+	}
+
+	public OccupacySensing getOccupacySensing() {
+		return occupancySensing;
+	}
+
+	public OnOff getOnOff() {
+		return onOff;
+	}
+
+	public Scenes getScenes() {
+		return scenes;
+	}
+
+	
+
+	@Override
+	public String getName() {
+		return OnOffLight.NAME;
+	}
+
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return OnOffLight.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return OnOffLight.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return OnOffLight.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return OnOffLight.STANDARD;
+		}
+		
+	};
+
+	@Override
+	public DeviceDescription getDescription() {
+		return DEVICE_DESCRIPTOR;
+	}
+
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightSwitchDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightSwitchDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightSwitchDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,85 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.ha.device.api.generic.OnOffSwitch;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OnOffLightSwitch;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class OnOffLightSwitchDevice extends HADeviceBase implements OnOffLightSwitch {
+	
+	private OnOffSwitchConfiguration onOffSwitchConfiguration;
+	
+	public OnOffLightSwitchDevice(BundleContext ctx,ZigBeeDevice zbDevice) throws ZigBeeHAException{
+		super(ctx,zbDevice);
+	}
+
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return OnOffLightSwitch.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return OnOffLightSwitch.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return OnOffLightSwitch.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return OnOffLightSwitch.STANDARD;
+		}
+		
+	};
+	
+	@Override
+	public DeviceDescription getDescription() {
+		return DEVICE_DESCRIPTOR;
+	}
+
+	@Override
+	public String getName() {
+		return OnOffSwitch.NAME;
+	}
+
+	public OnOffSwitchConfiguration getOnOffSwitchConfiguration() {
+		return onOffSwitchConfiguration;
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffLightSwitchDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffOutputDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffOutputDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffOutputDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,107 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Groups;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOff;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Scenes;
+import it.cnr.isti.zigbee.ha.device.api.generic.OnOffOutput;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OnOffLight;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 112 $ ($LastChangedDate: 2010-10-17 00:07:45 +0200 (dom, 17 ott 2010) $)
+ * @since 0.2.0
+ *
+ */
+public class OnOffOutputDevice extends HADeviceBase implements OnOffOutput {
+	
+	private OnOff onOff;
+	private Scenes scenes;
+	private Groups groups;
+	
+	public  OnOffOutputDevice(BundleContext ctx,ZigBeeDevice zbDevice) throws ZigBeeHAException {
+		super(ctx,zbDevice);
+		onOff = (OnOff) addCluster(HAProfile.ON_OFF);
+		groups = (Groups) addCluster(HAProfile.GROUPS);
+		scenes = (Scenes) addCluster(HAProfile.SCENES);
+	}
+
+
+	public Groups getGroups() {
+		return groups;
+	}
+
+	public OnOff getOnOff() {
+		return onOff;
+	}
+
+	public Scenes getScenes() {
+		return scenes;
+	}
+
+	
+
+	@Override
+	public String getName() {
+		return OnOffLight.NAME;
+	}
+
+	public final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return OnOffLight.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return OnOffLight.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return OnOffLight.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return OnOffLight.STANDARD;
+		}
+		
+	};
+
+	@Override
+	public DeviceDescription getDescription() {
+		return DEVICE_DESCRIPTOR;
+	}
+
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffOutputDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffSwitchDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffSwitchDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffSwitchDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,90 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Identify;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.ha.device.api.generic.OnOffSwitch;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class OnOffSwitchDevice extends HADeviceBase implements OnOffSwitch {
+	
+	private OnOffSwitchConfiguration onOffSwitchConfiguration;
+	
+	public OnOffSwitchDevice(BundleContext ctx,ZigBeeDevice zbDevice) throws ZigBeeHAException{
+		super(ctx,zbDevice);
+	}
+
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return OnOffSwitch.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return OnOffSwitch.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return OnOffSwitch.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return OnOffSwitch.STANDARD;
+		}
+		
+	};
+	
+	@Override
+	public DeviceDescription getDescription() {
+		return DEVICE_DESCRIPTOR;
+	}
+
+	@Override
+	public String getName() {
+		return OnOffSwitch.NAME;
+	}
+
+	public OnOffSwitchConfiguration getOnOffSwitchConfiguration() {
+		return onOffSwitchConfiguration;
+	}
+
+	public Identify getIdentify() {
+		return identify;
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/OnOffSwitchDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/TemperatureSensorDevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/TemperatureSensorDevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/TemperatureSensorDevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,85 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.device.impl;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.measureament_sensing.TemperatureMeasurement;
+import it.cnr.isti.zigbee.ha.device.api.hvac.TemperatureSensor;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.AbstractDeviceDescription;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+import org.osgi.framework.BundleContext;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.6.0
+ *
+ */
+public class TemperatureSensorDevice extends HADeviceBase implements TemperatureSensor {
+	
+	private final TemperatureMeasurement temperature;
+
+	public TemperatureSensorDevice(BundleContext ctx,ZigBeeDevice zbDevice) throws ZigBeeHAException {
+		super(ctx,zbDevice);
+		temperature = (TemperatureMeasurement) addCluster(HAProfile.TEMPERATURE_MEASUREMENT);
+	}
+
+	public String getName() {
+		return TemperatureSensor.NAME;
+	}
+
+	public TemperatureMeasurement getTemperatureMeasurement() {
+		return temperature;
+	}
+
+	final static DeviceDescription DEVICE_DESCRIPTOR =  new AbstractDeviceDescription(){
+
+		public int[] getCustomClusters() {
+			return TemperatureSensor.CUSTOM;
+		}
+
+		public int[] getMandatoryCluster() {
+			return TemperatureSensor.MANDATORY;
+		}
+
+		public int[] getOptionalCluster() {
+			return TemperatureSensor.OPTIONAL;
+		}
+
+		public int[] getStandardClusters() {
+			return TemperatureSensor.STANDARD;
+		}
+		
+	};
+	
+	public DeviceDescription getDescription() {
+		return DEVICE_DESCRIPTOR;
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/device/impl/TemperatureSensorDevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/ArraysUtil.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/ArraysUtil.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/ArraysUtil.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,49 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver;
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * 
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ * 
+ */
+public class ArraysUtil {
+
+    /**
+     * Create a new <code>int[]</code> by concatenating prefix and postfix
+     *   
+     * @param prefix the first the <code>int[]</code> to join
+     * @param postfix the second the <code>int[]</code> to join
+     * @return the new <code>int[]</code> obtained by concatenating prefix and postfix
+     */
+    public static final int[] append(int[] prefix, int[] postfix){
+	int[] result = new int[prefix.length+postfix.length];
+	System.arraycopy(prefix, 0, result, 0, prefix.length);
+	System.arraycopy(postfix, 0, result, prefix.length, postfix.length);
+	return result;
+    }
+    
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/ArraysUtil.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HADriverConfiguration.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HADriverConfiguration.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HADriverConfiguration.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,247 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver;
+
+import it.cnr.isti.osgi.util.DictionaryHelper;
+import it.cnr.isti.osgi.util.OSGiProperties;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.ReportingConfiguration;
+
+import java.util.Dictionary;
+import java.util.HashMap;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.service.cm.ConfigurationException;
+import org.osgi.service.cm.ManagedService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 90 $ ($LastChangedDate: 2010-10-08 21:02:14 +0200 (ven, 08 ott 2010) $)
+ * @since 0.6.0
+ *
+ */
+public class HADriverConfiguration implements ManagedService, ReportingConfiguration {
+	
+	private final static Logger logger = LoggerFactory.getLogger(HADriverConfiguration.class);
+
+	
+    public enum ProvidedClusterMode {
+        HomeAutomationProfileStrict,
+        EitherInputAndOutput;       
+    }	
+    /**
+     * The key to {@link String} property representing on values of th {@link ProvidedClusterMode} enum, that change the<br>
+     * creation behavior of the {@link HADeviceBase} objects, by following the rules:<br>
+     * <ul>
+     * <li>
+     * if the value is equal to <b>EitherInputAndOutput</b> then if a device provides an cluster X as <i>Input cluster</i> only,<br>
+     * and if the cluster X is mandatory and appear as <i>Output cluster</i>, then the <i>Home Automation Driver</i> consider the<br>
+     * cluster available X available for input too, and it add it to the actual list of cluster for the {@link HADevice} created
+     * <li>
+     * if the value is equal to <b>HomeAutomationProfileStrict</b> then the <i>Home Automation Driver</i> create the cluster for the<br>
+     * {@link HADevice} if and only if it is reported as an <i>Input cluster</i>
+     * </li>
+     * 
+     */
+    public static final String PROVIDED_CLUSTER_MODE_KEY = "it.isti.cnr.zigbee.ha.driver.cluster.discovery.mode";
+    /**
+     * The default value for the property {@link #PROVIDED_CLUSTER_MODE_KEY}, that is <b>HomeAutomationProfileStrict</b>
+     */
+    public static final String DEFAULT_PROVIDED_CLUSTER_MODE = ProvidedClusterMode.HomeAutomationProfileStrict.toString();
+		
+	private final HashMap<String, Object> configuration = new HashMap<String, Object>();
+	private final BundleContext context;
+	
+	public HADriverConfiguration(BundleContext bc){
+		context = bc;
+		synchronized (configuration) {
+			configuration.put(ReportingConfiguration.CONFIGURE_REPORTING_MIN_KEY, 
+					OSGiProperties.getInt(context, ReportingConfiguration.CONFIGURE_REPORTING_MIN_KEY, ReportingConfiguration.DEFAULT_CONFIGURE_REPORTING_MIN) 
+			);
+			
+			configuration.put(ReportingConfiguration.CONFIGURE_REPORTING_MAX_KEY, 
+					OSGiProperties.getInt(context, ReportingConfiguration.CONFIGURE_REPORTING_MAX_KEY, ReportingConfiguration.DEFAULT_CONFIGURE_REPORTING_MAX) 
+			);
+			
+			configuration.put(ReportingConfiguration.CONFIGURE_REPORTING_CHANGE_KEY, 
+					OSGiProperties.getDouble(context, ReportingConfiguration.CONFIGURE_REPORTING_CHANGE_KEY, ReportingConfiguration.DEFAULT_CONFIGURE_REPORTING_CHANGE) 
+			);
+			
+			configuration.put(ReportingConfiguration.CONFIGURE_REPORTING_OVERWRITE_KEY, 
+					OSGiProperties.getBoolean(context, ReportingConfiguration.CONFIGURE_REPORTING_OVERWRITE_KEY, ReportingConfiguration.DEFAULT_CONFIGURE_REPORTING_OVERWRITE) 
+			);
+			try{
+    			configuration.put(PROVIDED_CLUSTER_MODE_KEY, 
+                    OSGiProperties.getString(context, PROVIDED_CLUSTER_MODE_KEY, ProvidedClusterMode.HomeAutomationProfileStrict.toString() ) 
+                );
+			}catch(IllegalArgumentException ex){
+			    logger.error( 
+			        "The value current value {} of the property {} doesn't not belong to the enum {}, so it has been SET TO DEFAULT {}", 
+			        new Object[]{ 
+			            OSGiProperties.getString(context, PROVIDED_CLUSTER_MODE_KEY, null ), 
+			            PROVIDED_CLUSTER_MODE_KEY,
+			            ProvidedClusterMode.class.getName(),
+			            ProvidedClusterMode.HomeAutomationProfileStrict.toString()
+		            }
+		        );
+                configuration.put(PROVIDED_CLUSTER_MODE_KEY, ProvidedClusterMode.HomeAutomationProfileStrict.toString() );
+			}
+		}
+		
+		logger.debug("Initialized {} with {}", this, configuration);
+	}
+	
+	@SuppressWarnings("unchecked")
+	public void updated(Dictionary newConfig) throws ConfigurationException {
+		
+		logger.info("Updating configuration with {}", newConfig);
+		
+		if( newConfig == null ){
+			logger.debug("New configuration is null, avoiding to update it");
+			return;
+		}
+		
+		DictionaryHelper helper = new DictionaryHelper(newConfig);
+		boolean isChanged = false;
+		synchronized (this) {
+            isChanged = setInteger(ReportingConfiguration.CONFIGURE_REPORTING_MIN_KEY, 
+            		helper.getInt(ReportingConfiguration.CONFIGURE_REPORTING_MIN_KEY, getReportingMinimum()) 
+            ) || isChanged;		
+			
+			isChanged = setInteger(ReportingConfiguration.CONFIGURE_REPORTING_MAX_KEY, 
+					helper.getInt(ReportingConfiguration.CONFIGURE_REPORTING_MAX_KEY, getReportingMaximum()) 
+			) || isChanged;
+			
+			isChanged = setDouble(ReportingConfiguration.CONFIGURE_REPORTING_CHANGE_KEY, 
+					helper.getDouble(ReportingConfiguration.CONFIGURE_REPORTING_CHANGE_KEY, getReportingChange()) 
+			) || isChanged;			
+			
+			isChanged = setBoolean(ReportingConfiguration.CONFIGURE_REPORTING_OVERWRITE_KEY, 
+					helper.getBoolean(ReportingConfiguration.CONFIGURE_REPORTING_OVERWRITE_KEY, getReportingOverwrite()) 
+			) || isChanged;			
+            try {
+                isChanged = setStringCaseSensitve( PROVIDED_CLUSTER_MODE_KEY, 
+                    helper.getString( PROVIDED_CLUSTER_MODE_KEY, getClusterMode().toString() ) 
+                ) || isChanged;             
+            } catch ( IllegalArgumentException ex ) {
+                logger.error( "The new value current value {} for the property {} doesn't not belong to the enum {}, so it has been IGNORED",
+                    new Object[] {
+                        helper.getString( PROVIDED_CLUSTER_MODE_KEY, getClusterMode().toString() ),
+                        PROVIDED_CLUSTER_MODE_KEY, 
+                        ProvidedClusterMode.class.getName()
+                    } 
+                );
+            }
+         
+		}
+		
+		logger.debug("Current configuration after applying new configuration is {}", configuration);
+		
+	}
+
+	private int getInt(String key){
+		return ((Integer) configuration.get(key)).intValue();
+	}
+	
+	private long getLong(String key){
+		return ((Long) configuration.get(key)).longValue();
+	}
+	
+	private double getDouble(String key){
+		return ((Double) configuration.get(key)).doubleValue();
+	}
+	
+	private boolean getBoolean(String key){
+		return ((Boolean) configuration.get(key)).booleanValue();
+	}
+	
+	private String getString(String key){
+		return (String) configuration.get(key);
+	}	
+	
+	private boolean setStringCaseInsensitve(String key, String value){
+		if( getString(key).equalsIgnoreCase(value) ) return false;
+		configuration.put(key, value);
+		return true;
+	}
+	
+	private boolean setStringCaseSensitve(String key, String value){
+		if( getString(key).compareTo(value) == 0) return false;
+		configuration.put(key, value);
+		return true;
+	}
+
+	private boolean setLong(String key, long value){
+		if( getLong(key) == value ) return false;
+		configuration.put(key, value);
+		return true;
+	}
+
+	private boolean setInteger(String key, int value){
+		if( getInt(key) == value ) return false;
+		configuration.put(key, value);
+		return true;
+	}
+
+	private boolean setBoolean(String key, boolean value){
+		if( getBoolean(key) == value ) return false;
+		configuration.put(key, value);
+		return true;
+	}
+	
+	private boolean setDouble(String key, double value){
+		if( getDouble(key) == value ) return false;
+		configuration.put(key, value);
+		return true;
+	}
+	
+	public synchronized int getReportingMinimum() {
+		return getInt(ReportingConfiguration.CONFIGURE_REPORTING_MIN_KEY);
+	}			
+
+	public synchronized int getReportingMaximum() {
+		return getInt(ReportingConfiguration.CONFIGURE_REPORTING_MAX_KEY);
+	}			
+
+	public synchronized double getReportingChange() {
+		return getDouble(ReportingConfiguration.CONFIGURE_REPORTING_CHANGE_KEY);
+	}			
+	
+	public synchronized boolean getReportingOverwrite() {
+		return getBoolean(ReportingConfiguration.CONFIGURE_REPORTING_OVERWRITE_KEY);
+	}		
+	
+	/**
+	 * 
+	 * @return
+	 * @since  0.6.0 - Revision 88
+	 */
+	public synchronized ProvidedClusterMode getClusterMode() {
+	    return ProvidedClusterMode.valueOf( getString( PROVIDED_CLUSTER_MODE_KEY ) );
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HADriverConfiguration.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HAImporter.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HAImporter.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HAImporter.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,262 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.driver.core.HADevice;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceFactory;
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceRegistry;
+import it.cnr.isti.zigbee.ha.driver.core.HAProfile;
+import it.cnr.isti.zigbee.ha.driver.core.ZigBeeHAException;
+
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Properties;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class HAImporter extends Thread {
+	
+	private final static Logger log = LoggerFactory.getLogger(HAImporter.class);
+	
+	private final static Object DISCOVERY = new Object();
+	private final static String ANY_ZBDEVICE_FILTER = "("+Constants.OBJECTCLASS+"="+ZigBeeDevice.class.getName()+")";
+	private final static String ANY_HADEVICE_FILTER = "(&" + ANY_ZBDEVICE_FILTER + "(" + ZigBeeDevice.PROFILE_ID+"=" + HAProfile.ID +"))";
+	private BundleContext context;
+	
+	private final Hashtable<String, HADeviceDescriptor> refinedDevices;
+	private final HADeviceRegistry deviceRegistry;
+	private final HADeviceListener listenerHADevice = new HADeviceListener();
+	private final HADeviceFactoryListener listenerHADeviceFactory = new HADeviceFactoryListener();
+	
+	private class HADeviceDescriptor {
+		ServiceRegistration registration;
+		HADeviceBase haDevice;
+		ServiceReference zbDeviceSR;
+	}
+	
+	private class HADeviceListener implements ServiceListener {
+
+		public void serviceChanged(ServiceEvent event) {
+			synchronized (DISCOVERY) {			
+				ServiceReference zbDeviceSR = event.getServiceReference();		
+				switch(event.getType()){
+					case ServiceEvent.REGISTERED:{
+						doRefineHADevice(zbDeviceSR);
+					};break;
+					
+					case ServiceEvent.MODIFIED:{
+						// never modified
+					};break;
+					
+					case ServiceEvent.UNREGISTERING:{	
+						doRemoveRefinement(zbDeviceSR);
+					};break;					
+				}
+			}		
+		}
+	}
+	
+	private class HADeviceFactoryListener implements ServiceListener {
+
+		public void serviceChanged(ServiceEvent event) {
+			ServiceReference zbDeviceFactorySR = event.getServiceReference();		
+			synchronized (DISCOVERY) {
+				switch(event.getType()){
+					case ServiceEvent.REGISTERED:{
+						deviceRegistry.addHADeviceFactory(zbDeviceFactorySR);
+						refineDevices(zbDeviceFactorySR);
+					};break;
+	
+					case ServiceEvent.MODIFIED:{
+						deviceRegistry.removeHADeviceFactory(zbDeviceFactorySR);
+						deviceRegistry.addHADeviceFactory(zbDeviceFactorySR);
+					};break;
+	
+					case ServiceEvent.UNREGISTERING:{	
+						deviceRegistry.removeHADeviceFactory(zbDeviceFactorySR);
+					};break;					
+				}		
+			}
+		}
+
+		private void refineDevices(ServiceReference factory) {
+			try {
+				ServiceReference[] references = context.getServiceReferences(
+						ZigBeeDevice.class.getName(), 
+						"("+ZigBeeDevice.PROFILE_ID+"="+HAProfile.ID+")"
+				);
+				if ( references == null ) return;
+				for (int j = 0; j < references.length; j++) {
+					String uuid = (String) references[j].getProperty(ZigBeeDevice.UUID);
+					ServiceReference[] refined = context.getServiceReferences(
+							HADevice.class.getName(), 
+							"(" + HADevice.ZIGBEE_DEVICE_UUID + "=" + uuid + ")" 
+					);				
+					if ( refined != null ) {
+						log.debug(
+								"Device {} already refined. I won't checked if it could be refined by " +
+								"the new factory {}", uuid, factory.getProperty(Constants.OBJECTCLASS)
+						);
+						continue;
+					}
+					doRefineHADevice(references[j]);
+				}
+			} catch (InvalidSyntaxException ex) {
+				log.error("Fixed the filter definition and recompile the bundle {}",ex);
+			}
+		}
+		
+	}
+	
+	public void run(){
+		//TODO Move registration inside the run
+	}
+	
+	public HAImporter(BundleContext context){
+		this.context = context;
+		deviceRegistry = new HADeviceRegistry(context);
+		refinedDevices = new Hashtable<String, HADeviceDescriptor>();
+		
+		synchronized (DISCOVERY) {
+			try {
+				context.addServiceListener(listenerHADevice,ANY_HADEVICE_FILTER);
+				context.addServiceListener(listenerHADeviceFactory,HADeviceRegistry.ANY_ZBDEVICE_FACTORY_FILTER);
+			} catch (InvalidSyntaxException e) {
+				log.error("Modified the value of ANY_HADEVICE_FILTER or HADeviceRegistry.ANY_ZBDEVICE_FACTORY_FILTER and recompile",e);
+			}
+			try {
+				ServiceReference[] zbDeviceSRs = context.getAllServiceReferences(ZigBeeDevice.class.getName(), ANY_HADEVICE_FILTER);
+				if (zbDeviceSRs!= null){
+					for (int i= 0; i<zbDeviceSRs.length;i++){
+						doRefineHADevice(zbDeviceSRs[i]);
+					}
+				}
+			} catch (InvalidSyntaxException e) {
+				log.error("Modified the value of ANY_HADEVICE_FILTER and recompile",e);
+			}
+		}
+	}
+
+	public void serviceChanged(ServiceEvent event) {
+		
+	}
+
+	private void doRefineHADevice(ServiceReference zbDeviceSR) {
+		final String uuid = (String) zbDeviceSR.getProperty(ZigBeeDevice.UUID);
+		log.info("HAD - refining ZigbeeDevice {}", uuid);
+		ZigBeeDevice zbDevice = (ZigBeeDevice) context.getService(zbDeviceSR);
+		try {
+			/*
+			 * Call the getDeviceFactories and check for multiple factory
+			 * capable of handling the device
+			 */
+			HADeviceFactory factory = deviceRegistry.getFactory(zbDevice);
+			HADeviceBase refined = deviceRegistry.getInstance(zbDevice);
+			if (refined == null) { // pending services
+				log.warn("No refinement for ZigbeeDevice {}", uuid);
+			} else {
+				doRefinementRegistration(zbDeviceSR, refined, factory);
+			}
+		} catch (ZigBeeHAException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+	
+	private void doRefinementRegistration(ServiceReference zbDeviceSR, HADeviceBase refined, HADeviceFactory factory) {
+		String[] directInterfaces = factory.getRefinedInterfaces();
+		
+		//TODO definition of HAdevice Properties
+		Properties properties = new Properties();
+
+		properties.put(HADevice.ZIGBEE_DEVICE_UUID, zbDeviceSR.getProperty(ZigBeeDevice.UUID));
+		properties.put(HADevice.ZIGBEE_DEVICE_SERVICE, zbDeviceSR.getProperty(Constants.SERVICE_ID));
+		properties.put(HADevice.HA_DRIVER, "it.cnr.isti.zigbee.ha.driver");
+		properties.put(HADevice.HA_DEVICE_NAME, refined.getName());
+		properties.put(HADevice.HA_DEVICE_GROUP, ""); //TODO
+		properties.put(HADevice.HA_DEVICE_STANDARD, Boolean.TRUE);
+
+		
+		ServiceRegistration registration = context.registerService(directInterfaces, refined, properties);
+		String uuid = (String) zbDeviceSR.getProperty(ZigBeeDevice.UUID);
+
+		HADeviceDescriptor descriptor = new HADeviceDescriptor();
+		descriptor.registration = registration;
+		descriptor.haDevice = refined;
+		descriptor.zbDeviceSR = zbDeviceSR;
+		
+		synchronized (refinedDevices) {
+			refinedDevices.put(uuid, descriptor);			
+		}
+	}
+
+	private void doRemoveRefinement(ServiceReference zbDeviceSR) {
+		String uuid = (String) zbDeviceSR.getProperty(ZigBeeDevice.UUID);
+		HADeviceDescriptor descriptor = null;
+		synchronized (refinedDevices) {
+			descriptor = (HADeviceDescriptor) refinedDevices.remove(uuid);			
+		}
+		if (descriptor != null){
+			descriptor.haDevice.stop();
+			descriptor.registration.unregister();
+			context.ungetService(descriptor.zbDeviceSR);
+		}
+	}
+	
+
+	public void close() {
+		synchronized (refinedDevices) {
+			context.removeServiceListener(listenerHADevice);
+			context.removeServiceListener(listenerHADeviceFactory);
+			Enumeration<String> keys =  refinedDevices.keys();
+			while (keys.hasMoreElements()) {
+				String key = (String) keys.nextElement();
+				HADeviceDescriptor descriptor = (HADeviceDescriptor)  refinedDevices.get(key);
+				descriptor.haDevice.stop(); 
+				descriptor.registration.unregister();
+				context.ungetService(descriptor.zbDeviceSR);
+			}	
+			refinedDevices.clear();
+		}
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/HAImporter.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactory.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactory.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactory.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,41 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+
+/**
+ *
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public interface ClusterFactory {
+	
+	public Cluster getInstance(String key, ZigBeeDevice zbDevice) throws ZigBeeHAException;	
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactoryBase.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactoryBase.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactoryBase.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,120 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Properties;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceRegistration;
+
+/**
+ *
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public class ClusterFactoryBase implements ClusterFactory{
+
+	private BundleContext ctx;
+	private ServiceRegistration registration;
+	private Dictionary dictionary;
+	private Hashtable<String, Class> clusters;
+
+	
+    public ClusterFactoryBase(BundleContext ctx){
+    	this.ctx = ctx;
+    	dictionary = new Properties();
+    	clusters = new Hashtable<String, Class>();
+    }
+    
+
+	
+	public void addProperty(String key, Object value){
+    	dictionary.put(key, value);
+	}
+
+	
+	public void register(){
+		Enumeration<String> keys = clusters.keys();
+		String[] clusterIDs = new String[clusters.size()];
+		int i =0;
+		while (keys.hasMoreElements()) {
+			String key = (String) keys.nextElement();
+			clusterIDs[i++]=key;
+		}
+			
+		dictionary.put(Cluster.PROFILE_CLUSTER_IDs,clusterIDs);
+		registration = ctx.registerService(ClusterFactory.class.getName(), this, dictionary);
+	}
+	
+	public void unregister(){
+		registration.unregister();
+	}
+
+	
+	protected void addCluster(String key, Class clazz) {
+		clusters.put(key,clazz);		
+	}
+
+	public Cluster getInstance(String key, ZigBeeDevice zbDevice) {
+		Class clazz = clusters.get(key);	
+		if (clazz != null) {
+			try {
+				Constructor<?> constructor = clazz.getConstructor(ZigBeeDevice.class);
+				Cluster cluster =  (Cluster) constructor.newInstance(zbDevice);
+				return cluster;
+			} catch (SecurityException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			} catch (NoSuchMethodException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			} catch (IllegalArgumentException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			} catch (InstantiationException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			} catch (IllegalAccessException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			} catch (InvocationTargetException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+		return null;
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ClusterFactoryBase.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/GenericHADeviceFactory.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/GenericHADeviceFactory.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/GenericHADeviceFactory.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,121 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+
+import java.lang.reflect.Constructor;
+
+import org.osgi.framework.BundleContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * Generic class that simplify the creation of factory, and avoids the creation of a class for<br>
+ * each factory that we want to register
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @since 0.4.0
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $) *
+ */
+public class GenericHADeviceFactory extends HADeviceFactoryBase {
+
+    static final Logger logger = LoggerFactory.getLogger(GenericHADeviceFactory.class);
+
+    final protected String deviceId;
+    final protected Class<?> inter, impl;
+    
+    protected String[] classes;
+    
+    
+    /**
+     * Build an {@link HADeviceFactory} that refine {@link ZigBeeDevice} by means of <code>cImplementation</code>,<br>
+     * into a <code>cInterface</code> service. This factory build the instance of the new service by invoking<br>
+     * the constructor  <code>cImplementation(BundleContext, ZigBeeDevice)</code>.<br>
+     * By default the {@link #getRefinedInterfaces()} is built to return the values:<br>
+     * <pre>
+     * cInterface.getName()
+     * HADevice.class.getName()
+     * </pre>
+     * 
+     *  
+     * @param ctx {@link BundleContext} to use for registering the {@link HADeviceFactory} service
+     * @param cInterface {@link Class} representing the refined service that this factory will install
+     * @param cImplementation {@link Class} representing the implementation of the refinement service that will be created by the factory
+     * 
+     * @throws ZigBeeHAException
+     */
+    public GenericHADeviceFactory(BundleContext ctx, Class<?> cInterface, Class<?> cImplementation) throws ZigBeeHAException {
+		super(ctx, cInterface);
+		
+		this.inter = cInterface;
+		this.impl = cImplementation;
+		classes = new String[]{ cInterface.getName(), HADevice.class.getName() };
+		
+		try {
+		    deviceId = cInterface.getField("DEVICE_ID").get(null).toString();
+		} catch (Exception e) {
+		    logger.error(
+			    "Unable to retrive the implemented the DeviceId refined by this driver"
+			    + " by means of the reflection, the class {} does not provide the static "
+			    + "field DEVICE_ID.\n"
+			    + "Please modify the source code of the class by adding such static field or"
+			    + "implement a proper {} class", 
+			    cInterface.getName(), HADeviceFactory.class.getName()
+		    );
+		    logger.debug("Stack exception of the GenericHADeviceFactory() error", e);
+		    
+		    throw new ZigBeeHAException("Unable to retrive DEVICE_ID by means of reflection", e);
+		}
+    }
+
+    @Override
+    public String getDeviceId() {
+		return deviceId;
+    }
+
+    public GenericHADeviceFactory setRefinedInterfaces(String[] classNames) {
+		classes = classNames;
+		return this;
+    }
+    
+    @Override
+    public String[] getRefinedInterfaces() {
+		return classes;
+    }
+
+    @Override
+    public HADeviceBase getInstance(ZigBeeDevice zbd) throws ZigBeeHAException {
+		try {
+		    Constructor builder = impl.getConstructor(BundleContext.class, ZigBeeDevice.class);
+		    HADeviceBase device = (HADeviceBase) builder.newInstance(ctx, zbd);
+		    return device;
+		} catch (Exception e) {
+		    logger.error("Unable to create an instance of the refined device due to:", e);
+		    return null;
+		}
+    }
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/GenericHADeviceFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADevice.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADevice.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADevice.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,141 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Alarms;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Basic;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.DeviceTemperatureConfiguration;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Identify;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.PowerConfiguration;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 108 $ ($LastChangedDate: 2010-10-15 19:51:32 +0200 (ven, 15 ott 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface HADevice {
+	
+	public static final String ZIGBEE_DEVICE_SERVICE = "zigbee.service.id";
+	public static final String ZIGBEE_DEVICE_UUID = "zigbee.device.uuid";
+	public static final String HA_DRIVER = "zigbee.ha.driver.name";
+	public static final String HA_DEVICE_NAME = "zigbee.ha.name";
+	public static final String HA_DEVICE_GROUP = "zigbee.ha.group";
+	public static final String HA_DEVICE_STANDARD = "zigbee.ha.standard";
+	
+	public static final int[] MANDATORY = {HAProfile.BASIC,HAProfile.IDENTIFY};
+	public static final int[] OPTIONAL = {HAProfile.POWER_CONFIGURATION, HAProfile.DEVICE_TEMPERATURE_CONFIGURATION, HAProfile.ALARMS};
+	public static final int[] STANDARD = ArraysUtil.append(MANDATORY, OPTIONAL);
+	
+	
+	public String getName();	
+	/**
+	 * 
+	 * @return an <code>int</code> representing the <b>DeviceId</b> as defined by the<br> 
+	 * 		<i>ZigBee Home Automation</i> profile documentation
+	 */
+	public int getDeviceType();
+	public int getEndPointId();
+	public int getProfileId();
+	
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Basic} 
+	 *  
+	 * @return the {@link Basic} cluster object
+	 */
+	public Basic getBasic();
+	
+	/**
+	 * Access method for the <b>Mandatory</b> cluster: {@link Basic} 
+	 *  
+	 * @return the {@link Basic} cluster object
+	 */	
+	public Identify getIdentify();
+
+	/**
+	 * Access method for the <b>Optional</b> cluster: {@link PowerConfiguration} 
+	 *  
+	 * @return the {@link PowerConfiguration} cluster object
+	 * @since 0.4.0
+	 */
+	public PowerConfiguration getPowerConfiguration();
+
+	/**
+	 * Access method for the <b>Optional</b> cluster: {@link DeviceTemperatureConfiguration} 
+	 *  
+	 * @return the {@link DeviceTemperatureConfiguration} cluster object
+	 * @since 0.4.0
+	 */
+	public DeviceTemperatureConfiguration getDeviceTemperatureConfiguration();
+
+	/**
+	 * Access method for the <b>Optional</b> cluster: {@link Alarms} 
+	 *  
+	 * @return the {@link Alarms} cluster object
+	 * @since 0.4.0
+	 */
+	public Alarms getAlarms();	
+	
+	/**
+	 * Access method to the {@link DeviceDescription}.<br>
+	 * 
+	 * <b>NOTE</b>: The {@link DeviceDescription} <b>should</b> be shared among all {@link HADeviceBase}<br>
+	 * sharing the same <b>DeviceId</b>
+	 * 
+	 * @return the {@link DeviceDescription}
+	 */	
+	public DeviceDescription getDescription();
+	/**
+	 * 
+	 * @param id the <code>int</code> representing the <b>ClusterId</b> 
+	 * @return the {@link Cluster} identified by the given id if this device implements<br>
+	 * 		otherwise <code>null</code>
+	 * @since 0.2.0
+	 */
+	public Cluster getCluster(int id);
+	
+	/**
+	 * 
+	 * @return the {@link Cluster} array effectively implemented by the remote ZigBee Device<br>
+	 * 		otherwise <code>null</code>
+	 */
+	public  Cluster[] getAvailableCluster();
+
+	
+	/**
+	 * 
+	 * @return return {@link ZigBeeDevice} service that has been refined has {@link HADevice} 
+	 * @since 0.2.0
+	 * @deprecated The method should be avoided because it cause Service Reference Leak
+	 */
+	public ZigBeeDevice getZBDevice(); 
+	
+	
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADevice.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceBase.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceBase.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceBase.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,277 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.Activator;
+import it.cnr.isti.zigbee.ha.cluster.glue.Cluster;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Alarms;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Basic;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.DeviceTemperatureConfiguration;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.Identify;
+import it.cnr.isti.zigbee.ha.cluster.glue.general.PowerConfiguration;
+import it.cnr.isti.zigbee.ha.driver.HADriverConfiguration;
+import it.cnr.isti.zigbee.ha.driver.HADriverConfiguration.ProvidedClusterMode;
+import it.cnr.isti.zigbee.ha.driver.core.reflection.DeviceDescription;
+import it.cnr.isti.zigbee.zcl.library.api.core.Subscription;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZCLCluster;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * This class represent a generic <b>Home Automation Device</b> as defined by the document:<br>
+ * <i>ZigBee Home Automation</i> public release version 075123r01ZB
+ * <br>
+ * <b>NOTE</b>: In general the mapping between <b>ClusterId</b> and <b>Cluster</b> is defined<br>
+ * by the profile, while the mapping between <b><i>Name</i></b> and <b>Cluster</b> is defined where the<br>
+ * <b>Cluster</b> is defined: usually inside a <i>Cluster Library</i>
+ * 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 90 $ ($LastChangedDate: 2010-10-08 21:02:14 +0200 (ven, 08 ott 2010) $)
+ * @since 0.1.0
+ *
+ */
+public abstract class HADeviceBase implements HADevice  {
+	
+	private final static Logger logger = LoggerFactory.getLogger(HADeviceBase.class);
+	
+	protected ZigBeeDevice zbDevice;
+	private BundleContext ctx;
+	
+	
+	private Cluster[] clusters;
+	private int index;
+	
+	
+	/*
+	 * Mandatory clusters common to all Home Automation devices
+	 */
+	protected Basic basic;
+	protected Identify identify;
+	/*
+	 * Optional clusters common to all Home Automation devices
+	 */
+	protected Alarms alarms;
+	protected DeviceTemperatureConfiguration deviceTemperature;
+	protected PowerConfiguration powerConfiguration;
+	
+			 
+	
+	public HADeviceBase(BundleContext ctx, ZigBeeDevice zbDevice ) throws ZigBeeHAException{
+		this.zbDevice = zbDevice;
+		this.ctx = ctx;
+		
+		final int size;		
+		if( Activator.getConfiguration().getClusterMode() == ProvidedClusterMode.HomeAutomationProfileStrict ){
+			size = zbDevice.getInputClusters().length;
+		}else{
+			size = zbDevice.getInputClusters().length + zbDevice.getOutputClusters().length;
+		}
+		clusters = new Cluster[size];
+		
+		basic = (Basic) addCluster(HAProfile.BASIC);
+		identify = (Identify) addCluster(HAProfile.IDENTIFY);
+		
+    	powerConfiguration = (PowerConfiguration) addCluster(HAProfile.POWER_CONFIGURATION);
+    	deviceTemperature = (DeviceTemperatureConfiguration) addCluster(HAProfile.DEVICE_TEMPERATURE_CONFIGURATION);
+    	alarms = (Alarms) addCluster(HAProfile.ALARMS);
+	}
+	
+	public  int getDeviceType(){
+		return zbDevice.getDeviceId();
+	}
+	
+	public abstract  String getName();
+	
+	public  int getEndPointId(){
+		return zbDevice.getId();
+	}
+	public  int getProfileId(){
+		return zbDevice.getProfileId();
+	}
+
+		
+	protected Cluster addCluster(int clusterId) throws ZigBeeHAException {
+		if ( ! zbDevice.providesInputCluster(clusterId) ){
+			if (getDescription().isMandatory(clusterId)){
+				logger.warn(
+						"ZigBeeDevice with DeviceId={} of Home Automation profile " +
+						"doesn't implement mandatory cluster {}", zbDevice.getDeviceId(), clusterId
+				);
+				if ( zbDevice.providesOutputCluster(clusterId) ){
+					logger.error(
+							"ZigBeeDevice with DeviceId={} of Home Automation profile " +
+							"implements the mandatory cluster {} as output instead of as input " +
+							"it may identify an error either on the Driver description or in " +
+							"in the implementation of firmware of the physical device", 
+							zbDevice.getDeviceId(), clusterId
+					);
+					if( Activator.getConfiguration().getClusterMode() == ProvidedClusterMode.HomeAutomationProfileStrict ) {
+						logger.warn(
+								"The cluster {} of the device {} is PROVIDED AS OUTPUT instead of AS INPUT, " +
+								"if you want to add it anyway please change the value of the property {} " +
+								" from {} to {}", new Object[]{
+										clusterId, 
+										zbDevice.getDeviceId(), 
+										HADriverConfiguration.PROVIDED_CLUSTER_MODE_KEY, 
+										ProvidedClusterMode.HomeAutomationProfileStrict,
+										ProvidedClusterMode.EitherInputAndOutput
+								}
+						);
+						return null;
+					}else{
+						logger.warn(
+								"The cluster {} of the device {} is PROVIDED AS OUTPUT instead of AS INPUT, " +
+								"it will be added anyway to the device due to value of the property {} " +
+								", if you want to disable this change the value from {} to {}", 
+								new Object[]{
+									clusterId, 
+									zbDevice.getDeviceId(), 
+									HADriverConfiguration.PROVIDED_CLUSTER_MODE_KEY, 
+									ProvidedClusterMode.EitherInputAndOutput,
+									ProvidedClusterMode.HomeAutomationProfileStrict
+								}										
+						);
+					}
+				} else {
+					logger.error(
+							"ZigBeeDevice with DeviceId={} of Home Automation profile " +
+							"doesn't implements the mandatory cluster {} neither as output " +
+							"nor as input it may identify an error either on the Driver " +
+							"description or in in the implementation of firmware of the " +
+							"physical device", 
+							zbDevice.getDeviceId(), clusterId
+					);
+					return null;
+				}
+			} else if (getDescription().isOptional(clusterId)){
+				return null;
+			} else if (getDescription().isCustom(clusterId)){
+				// check if exists custom add-on
+				// by using ProfileModule interface
+				logger.warn("[WARNING] Custom Cluster not instantiated");
+				return null;
+			}
+		}
+		
+
+		try {
+			String key = HAProfile.ID + ":"+String.valueOf(clusterId);
+			String filter = "(" + Cluster.PROFILE_CLUSTER_IDs + "=" + key+ ")";
+			ServiceReference[] srClusterFactory = ctx.getServiceReferences(ClusterFactory.class.getName(), filter);
+			if( srClusterFactory == null ) {
+				logger.error("No class found implementing the requested cluster {}", clusterId);
+				return null;
+			}
+			else {
+				ClusterFactory factory = (ClusterFactory) ctx.getService(srClusterFactory[0]);
+				Cluster cluster = factory.getInstance(key,zbDevice);
+				clusters[index++] = cluster;	
+				return cluster;
+			}
+		} catch (InvalidSyntaxException e) {
+			logger.error("Modified the value of ANY_HADEVICE_FILTER and recompile",e);
+		}
+		return null;
+		
+
+	}
+
+	public Basic getBasic(){
+		return basic;
+	}
+	
+
+	public Identify getIdentify(){
+		return identify;
+	}		
+
+	public PowerConfiguration getPowerConfiguration() {
+	    return powerConfiguration;
+	}
+
+	public DeviceTemperatureConfiguration getDeviceTemperatureConfiguration(){
+	    return deviceTemperature;
+	}
+
+	public Alarms getAlarms(){
+	    return alarms;
+	}	
+	
+
+	public abstract DeviceDescription getDescription();
+	
+	public Cluster getCluster(int id){
+		for (int i = 0; i < clusters.length; i++) {
+			if (clusters[i] != null && clusters[i].getId()==id)
+				return clusters[i];
+		}
+		return null;
+	}
+	
+	/**
+	 * 
+	 * @param name the {@link String} representing the name associated to <b>ClusterId</b> 
+	 * @return the {@link ZCLCluster} identified by the given name if this device implements<br>
+	 * 		otherwise <code>null</code>
+	 */
+	public Cluster getCluster(String name){
+		for (int i = 0; i < clusters.length; i++) {
+			if (clusters[i] != null && clusters[i].getName().equals(name))
+				return clusters[i];
+		}
+		return null;
+	}
+	
+	public  Cluster[] getAvailableCluster(){
+		return clusters;
+	}
+
+	public void stop() {
+		for (int i = 0; i < clusters.length; i++) {
+			if ( clusters[i] == null ) continue;
+			
+			Subscription[] subscriptions = clusters[i].getActiveSubscriptions();
+			if ( subscriptions == null ) continue;
+			
+			for (int j = 0; j < subscriptions.length; j++) {
+				if ( subscriptions[j] == null ) continue;
+				subscriptions[j].clear();
+			}
+		}
+	}
+	
+	public ZigBeeDevice getZBDevice(){
+		return zbDevice;
+	}
+	
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceBase.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactory.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactory.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactory.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,86 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+
+import org.osgi.framework.ServiceReference;
+
+/**
+ *
+ * This class represent the main interface for the extendable architecture of the<br>
+ * refinement driver. Each refinement driver from {@link ZigBeeDevice} to {@link HADevice}<br>
+ * has to implement this interface as OSGi Service and register it on OSGi platform. 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 68 $ ($LastChangedDate: 2010-10-01 14:33:43 +0200 (ven, 01 ott 2010) $)
+ * @since 0.4.0
+ *
+ */
+public interface HADeviceFactory {
+	
+	//TODO Allow the creation of multi-device factory
+	
+	/**
+	 * 
+	 * @return return the {@link String} representing the Device Id that this driver can refine
+	 */
+	public String getDeviceId();
+	
+	/**
+	 * 
+	 * @return return an array of {@link String} containing all the cluster interfaces<br>
+	 * 		 	implemented by the refined device generated by this driver
+	 */
+	public int[] getDeviceClusters();
+	
+	/**
+	 * 
+	 * @return return an array of {@link String} containing all the interfaces<br>
+	 * 			implemented by the refined device generated by this driver
+	 */
+	public String[] getRefinedInterfaces();
+	
+	
+	/**
+	 * 
+	 * @param zbd the {@link ZigBeeDevice} to refine
+	 * @return the {@link HADeviceBase} refined from {@link ZigBeeDevice} from this<br>
+	 * 			refinement driver
+	 * 
+	 * @throws ZigBeeHAException
+	 */
+	public HADeviceBase getInstance(ZigBeeDevice zbd) throws ZigBeeHAException;
+	
+	/**
+	 * <b>NOT IN USE</b>
+	 * 
+	 * @param sr the {@link ServiceReference} referencing at the {@link ZigBeeDevice}
+	 * @return a matching value between the {@link ZigBeeDevice} referenced by the<br>
+	 * 			{@link ServiceReference} for this refinement driver
+	 */
+	public int hasMatch(ServiceReference sr);
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactoryBase.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactoryBase.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactoryBase.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,142 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.driver.ArraysUtil;
+
+import java.util.Arrays;
+import java.util.Dictionary;
+import java.util.Properties;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ *         
+ * @version $LastChangedRevision: 68 $ ($LastChangedDate: 2010-10-01 14:33:43 +0200 (ven, 01 ott 2010) $)
+ * @since 0.4.0
+ *
+ */
+public abstract class HADeviceFactoryBase implements HADeviceFactory {
+
+    private static final int MATCH_DEVICE_ID = 256;
+
+    private static final Logger logger = LoggerFactory.getLogger(HADeviceFactoryBase.class);
+
+    protected BundleContext ctx;
+
+    private ServiceRegistration registration;
+    private Dictionary dictionary;
+    private Class<?> refinement;
+    protected int[] clusters;
+
+    /**
+     * 
+     * @param ctx {@link BundleContext} of the bundle extending the refinement capabilities
+     * @param refinement {@link Class} of the most refined interfaces provided by this factory
+     */
+    public HADeviceFactoryBase(BundleContext ctx, Class<?> refinement) {
+		this.ctx = ctx;
+		this.refinement = refinement;
+		dictionary = new Properties();
+		dictionary.put(ZigBeeDevice.PROFILE_ID, Integer.toString(HAProfile.ID));
+    }
+
+    public abstract String getDeviceId();
+
+    public int[] getDeviceClusters() {
+	synchronized (this) {
+	    if (clusters == null) {
+		try {
+		    final int[] standard = (int[]) refinement.getDeclaredField("STANDARD").get(null);
+		    final int[] custom = (int[]) refinement.getDeclaredField("CUSTOM").get(null);
+		    clusters = ArraysUtil.append(standard, custom);
+		} catch (Exception e) {
+		    logger.error(
+			    "Unable to retrive the implemented clusters by means of the reflection, "
+			    + "the class {} does not provide the static field STANDARD or CUSTOM.\n"
+			    + "Please modify the source code of the class by adding such static field or"
+			    + "ovveride the getDeviceClusters() method",refinement.getName()
+		    );
+		    logger.debug("Stack exception of the getDeviceClusters() error", e);
+		}
+	    }
+	    return clusters;
+	}
+    }
+
+    public abstract String[] getRefinedInterfaces();
+
+    public abstract HADeviceBase getInstance(ZigBeeDevice zbDevice) throws ZigBeeHAException;
+
+    public void addProperty(String key, Object value) {
+    	dictionary.put(key, value);
+    }
+
+    
+    public int hasMatch(ServiceReference ref) {
+		int[] inclusterIds = (int[]) ref.getProperty(ZigBeeDevice.CLUSTERS_INPUT_ID);
+		int[] refinedClusterIds = (int[]) getDeviceClusters();
+		int score = 0;
+		for (int i = 0; i < inclusterIds.length; i++) {
+		    for (int j = 0; j < refinedClusterIds.length; j++) {
+			if (inclusterIds[i] == refinedClusterIds[j]) {
+			    score = score + 1;
+			    break;
+			}
+		    }
+		}
+		String deviceId = (String) ref.getProperty(ZigBeeDevice.DEVICE_ID);
+		String id = getDeviceId();
+		if (deviceId.equals(id)){
+		    score = score + MATCH_DEVICE_ID;
+		}
+		return score;
+    }
+    
+    public HADeviceFactoryBase register() {
+		dictionary.put(ZigBeeDevice.DEVICE_ID, getDeviceId());
+		dictionary.put(ZigBeeDevice.CLUSTERS_INPUT_ID, getDeviceClusters());
+		if( logger.isInfoEnabled() ) {
+    		logger.info( 
+    		    "Registering a HADeviceFactory ( a refinement driver ) whose refines service with deviceId={} and clusters={}",
+    		    getDeviceId(), Arrays.toString( getDeviceClusters() )
+    		);
+		}
+		registration = ctx.registerService(HADeviceFactory.class.getName(), this, dictionary);
+		return this;
+    }
+
+    public HADeviceFactoryBase unregister() {
+		registration.unregister();
+		return this;
+    }
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceFactoryBase.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceRegistry.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceRegistry.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceRegistry.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,138 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeDevice;
+import it.cnr.isti.zigbee.ha.driver.HAImporter;
+
+import java.util.HashMap;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceEvent;
+import org.osgi.framework.ServiceListener;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public class HADeviceRegistry {
+
+	private final static Object REGISTRY = new Object();
+	public final static String ANY_ZBDEVICE_FACTORY_FILTER = "("+Constants.OBJECTCLASS+"="+HADeviceFactory.class.getName()+")";
+
+	private final static Logger log = LoggerFactory.getLogger(HADeviceRegistry.class);
+	private final BundleContext ctx;
+	private HashMap<String, HADeviceFactory> registry;
+	private HAImporter refiner;
+
+	public HADeviceRegistry(BundleContext ctx){
+		this.ctx = ctx ; 
+		registry = new HashMap<String, HADeviceFactory>();
+		
+		try {
+			ServiceReference[] zbDeviceSRs = ctx.getAllServiceReferences(HADeviceFactory.class.getName(), ANY_ZBDEVICE_FACTORY_FILTER);
+			if (zbDeviceSRs!= null){
+				for (int i= 0; i<zbDeviceSRs.length;i++){
+					addHADeviceFactory(zbDeviceSRs[i]);
+				}
+			}
+		} catch (InvalidSyntaxException e) {
+			log.error("Bad ANY_ZBDEVICE_FACTORY_FILTER: " + ANY_ZBDEVICE_FACTORY_FILTER,e);
+		}
+	}
+
+	public void addHADeviceFactory(ServiceReference zbDeviceFactorySR) {
+		HADeviceFactory factory = (HADeviceFactory) ctx.getService(zbDeviceFactorySR);
+		String key = factory.getDeviceId();
+		
+		HADeviceFactory value;
+		synchronized (REGISTRY) {
+			value = registry.put(key, factory);			
+		}
+		if(value != null){
+			log.warn("ATTENTION a device with ID:" +  key + " has been replaced in the registry !!");
+		}
+	}
+
+	public void  removeHADeviceFactory(ServiceReference zbDeviceFactorySR) {
+		String deviceId = (String) zbDeviceFactorySR.getProperty(ZigBeeDevice.DEVICE_ID);
+		synchronized (REGISTRY) {
+			registry.remove(deviceId);			
+		}
+		ctx.ungetService(zbDeviceFactorySR);
+	}
+
+	/**
+	 * This method selects among all the {@link HADeviceFactory} all the {@link HADeviceFactory} that can<br>
+	 * refine the {@link ZigBeeDevice}. Thus all the {@link HADeviceFactory} having<br> 
+	 * {@link HADeviceFactory#hasMatch(ServiceReference)} greater than 0  
+	 * 
+	 * @param zbDevice 
+	 * @return a {@link HADeviceFactory} array containing all the factories with a matching value greater then 0
+	 * 
+	 * @throws ZigBeeHAException
+	 */
+	/*
+	public HADeviceFactory[] getDeviceFactories(ZigBeeDevice zbDevice) throws ZigBeeHAException {
+	    	//TODO follow the javadoc
+	    
+		final String deviceId = String.valueOf(zbDevice.getDeviceId());
+		
+		synchronized (REGISTRY) {
+			HADeviceFactory factory = registry.get(deviceId);
+			if (factory != null)
+				return new HADeviceFactory[]{ factory };
+			else 
+				return null;
+		}
+	}
+	*/
+	
+	public HADeviceFactory getFactory(ZigBeeDevice zbDevice) {
+		final String deviceId = String.valueOf(zbDevice.getDeviceId());
+		
+		synchronized (REGISTRY) {
+			return registry.get(deviceId);
+		}
+	}
+	
+	public HADeviceBase getInstance(ZigBeeDevice zbDevice) throws ZigBeeHAException{
+	    final HADeviceFactory factory = getFactory(zbDevice);
+	    if (factory != null) {
+		return factory.getInstance(zbDevice);
+	    } else { 
+		return null;
+	    }
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HADeviceRegistry.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HAProfile.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HAProfile.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HAProfile.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,96 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.ha.device.api.generic.OnOffOutput;
+import it.cnr.isti.zigbee.ha.device.api.hvac.TemperatureSensor;
+import it.cnr.isti.zigbee.ha.device.api.lighting.DimmableLight;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OccupancySensor;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OnOffLight;
+import it.cnr.isti.zigbee.ha.device.api.lighting.OnOffLightSwitch;
+import it.cnr.isti.zigbee.zcl.library.api.general.Alarms;
+import it.cnr.isti.zigbee.zcl.library.api.general.Basic;
+import it.cnr.isti.zigbee.zcl.library.api.general.Commissioning;
+import it.cnr.isti.zigbee.zcl.library.api.general.DeviceTemperatureConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.general.Groups;
+import it.cnr.isti.zigbee.zcl.library.api.general.Identify;
+import it.cnr.isti.zigbee.zcl.library.api.general.LevelControl;
+import it.cnr.isti.zigbee.zcl.library.api.general.OnOff;
+import it.cnr.isti.zigbee.zcl.library.api.general.OnOffSwitchConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.general.PowerConfiguration;
+import it.cnr.isti.zigbee.zcl.library.api.general.Scenes;
+import it.cnr.isti.zigbee.zcl.library.api.general.Time;
+import it.cnr.isti.zigbee.zcl.library.api.measureament_sensing.IlluminanceMeasurement;
+import it.cnr.isti.zigbee.zcl.library.api.measureament_sensing.OccupacySensing;
+import it.cnr.isti.zigbee.zcl.library.api.measureament_sensing.RelativeHumidityMeasurement;
+import it.cnr.isti.zigbee.zcl.library.api.measureament_sensing.TemperatureMeasurement;
+import it.cnr.isti.zigbee.zcl.library.api.security_safety.IASWD;
+import it.cnr.isti.zigbee.zcl.library.api.security_safety.IASZone;
+
+
+/**
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.4.0
+ *
+ */
+public class HAProfile {
+
+	public static final int ID = 260;
+
+	//Generic
+	public static final int BASIC = Basic.ID;
+	public static final int IDENTIFY = Identify.ID;
+	public static final int GROUPS = Groups.ID;
+	public static final int SCENES = Scenes.ID;
+	public static final int ON_OFF = OnOff.ID;
+	public static final int TIME = Time.ID;
+	public static final int LEVEL_CONTROL = LevelControl.ID;
+	public static final int ONOFF_OUTPUT = OnOffOutput.DEVICE_ID;
+	public static final int ON_OFF_SWITCH_CONFIGURATION = OnOffSwitchConfiguration.ID;
+	public static final int ALARMS = Alarms.ID;
+	public static final int POWER_CONFIGURATION = PowerConfiguration.ID;
+	public static final int DEVICE_TEMPERATURE_CONFIGURATION = DeviceTemperatureConfiguration.ID;
+	public static final int COMMISSIONING = Commissioning.ID; // new
+
+	//Measureament & Sensing
+	public static final int TEMPERATURE_MEASUREMENT = TemperatureMeasurement.ID;
+	public static final int OCCUPANCY_SENSING = OccupacySensing.ID;
+	public static final int RELATIVE_HUMIDITY_MEASUREMENT = RelativeHumidityMeasurement.ID;
+	public static final int ILLUMINANCE_MEASUREMENT = IlluminanceMeasurement.ID; // new
+
+	//Lighting
+	public static final int ONOFF_LIGHT = OnOffLight.DEVICE_ID; 
+	public static final int DIMMABLE_LIGHT = DimmableLight.DEVICE_ID;
+	public static final int ONOFF_LIGHT_SWITCH = OnOffLightSwitch.DEVICE_ID;
+	public static final int OCCUPANCY_SENSOR = OccupancySensor.DEVICE_ID;
+
+	//HVAC
+	public static final int TEMPERATURE_SENSOR = TemperatureSensor.DEVICE_ID;
+
+	//Security & Safety
+	public static final int IAS_ZONE = IASZone.ID;
+	public static final int IAS_WD = IASWD.ID;
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/HAProfile.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ReportingConfiguration.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ReportingConfiguration.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ReportingConfiguration.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,103 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.ha.driver.HADriverConfiguration.ProvidedClusterMode;
+
+import org.osgi.framework.Constants;
+
+/**
+ * 
+ * The interface of the service registered by the <b>Home Automation Driver</b> architecture<br>
+ * which is used to provides among all the bundles composing the <b>Home Automation Driver</b>,<br>
+ * (i.e.: core drivers and driver extension) the default configuration of the reporting<br>
+ * <br>
+ * Interfaces that contains the definition of all the properties key and default values,<br>
+ * that affects the reporting behavior of the <b>Home Automation Driver</b> architecture
+ * 
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 90 $ ($LastChangedDate: 2010-10-08 21:02:14 +0200 (ven, 08 ott 2010) $)
+ * @since 0.6.0
+ *
+ */
+public interface ReportingConfiguration {
+	
+	public final static String SERVICE_FILTER = "( " + Constants.OBJECTCLASS + "=" + ReportingConfiguration.class.getName() + ")";
+
+	
+    /**
+     * The key to {@link Integer} property that set the default value for the <b>Minimum Rerporting Interval</b> field 
+     * of the <br>
+     * <b>Configure Reporting Command</b> command. By default it sets the reporting to up one message per minute
+     */
+    public static final String CONFIGURE_REPORTING_MIN_KEY = "it.cnr.isti.zigbee.ha.reporting.min";
+    /**
+     * The default value for the property {@link #CONFIGURE_REPORTING_MIN_KEY}, that is 60
+     */
+    public static final int DEFAULT_CONFIGURE_REPORTING_MIN = 60;
+
+    
+    /**
+     * The key to {@link Integer} property that set the default value for the <b>Maximum Rerporting Interval</b> field 
+     * of the <br>
+     * <b>Configure Reporting Command</b> command. By default it sets the reporting to send message only when value change
+     */
+    public static final String CONFIGURE_REPORTING_MAX_KEY = "it.cnr.isti.zigbee.ha.reporting.max";
+    /**
+     * The default value for the property {@link #CONFIGURE_REPORTING_MAX_KEY}, that is 0
+     */
+    public static final int DEFAULT_CONFIGURE_REPORTING_MAX = 0;
+
+    
+    /**
+     * The key to {@link Double} property that set the default value for the <b>Rerportable Change</b> field of the <br>
+     * <b>Configure Reporting Command</b> command. By default it sets the reporting to send message for any change
+     */
+    public static final String CONFIGURE_REPORTING_CHANGE_KEY = "it.cnr.isti.zigbee.ha.reporting.change";
+    /**
+     * The default value for the property {@link #CONFIGURE_REPORTING_CHANGE_KEY}, that is 0.0
+     */
+    public static final double DEFAULT_CONFIGURE_REPORTING_CHANGE = 0.0d;
+    
+    /**
+     * The key to {@link Boolean} property that specify if the reporting should overwrite pre-existing configuration or not<br>
+     * By default the system overwrite the configuration
+     */
+    public static final String CONFIGURE_REPORTING_OVERWRITE_KEY = "it.cnr.isti.zigbee.ha.reporting.overwrite";
+    /**
+     * The default value for the property {@link #CONFIGURE_REPORTING_OVERWRITE_KEY}, that is true
+     */
+    public static final boolean DEFAULT_CONFIGURE_REPORTING_OVERWRITE = true;   
+
+	
+	public abstract int getReportingMinimum();
+
+	public abstract int getReportingMaximum();
+
+	public abstract double getReportingChange();
+
+	public abstract boolean getReportingOverwrite();
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ReportingConfiguration.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ZigBeeHAException.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ZigBeeHAException.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ZigBeeHAException.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,52 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core;
+
+import it.cnr.isti.zigbee.api.ZigBeeException;
+
+/**
+ *
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ *         
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ * @since 0.1.0
+ *
+ */
+public class ZigBeeHAException extends ZigBeeException {
+
+	public ZigBeeHAException(String msg) {
+		super(msg);
+	}
+
+	public ZigBeeHAException(Throwable ex) {
+		super(ex);
+	}
+	
+	/**
+	 * @since 0.4.0
+	 */
+	public ZigBeeHAException(String msg,Throwable ex) {
+		super(msg,ex);
+	}
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/ZigBeeHAException.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/AbstractDeviceDescription.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/AbstractDeviceDescription.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/AbstractDeviceDescription.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,70 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core.reflection;
+/**
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 42 $ ($LastChangedDate: 2010-09-23 14:21:48 +0200 (gio, 23 set 2010) $)
+ *
+ */
+public abstract class AbstractDeviceDescription implements DeviceDescription{
+
+	public abstract int[] getCustomClusters();
+	public abstract int[] getMandatoryCluster();
+	public abstract int[] getOptionalCluster() ;
+	public abstract int[] getStandardClusters() ;
+
+	public boolean isCustom(int clusterId) {
+		int[] array = getCustomClusters();
+		for (int i = 0; i < array.length; i++) {
+			if (array[i]==clusterId) return true;
+		}
+		return false;
+	}
+
+	public boolean isMandatory(int clusterId) {
+		int[] array = getMandatoryCluster();
+		for (int i = 0; i < array.length; i++) {
+			if (array[i]==clusterId) return true;
+		}
+		return false;
+	}
+
+	public boolean isOptional(int clusterId) {
+		int[] array = getOptionalCluster();
+		for (int i = 0; i < array.length; i++) {
+			if (array[i]==clusterId) return true;
+		}
+		return false;
+	}
+
+	public boolean isStandard(int clusterId) {
+		int[] array = getStandardClusters();
+		for (int i = 0; i < array.length; i++) {
+			if (array[i]==clusterId) return true;
+		}
+		return false;
+	}
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/AbstractDeviceDescription.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/DeviceDescription.java
==============================================================================
--- projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/DeviceDescription.java (added)
+++ projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/DeviceDescription.java Thu Jun 21 11:49:30 2012
@@ -1,0 +1,75 @@
+/*
+   Copyright 2008-2010 CNR-ISTI, http://isti.cnr.it
+   Institute of Information Science and Technologies 
+   of the Italian National Research Council 
+
+
+   See the NOTICE file distributed with this work for additional 
+   information regarding copyright ownership
+
+   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 it.cnr.isti.zigbee.ha.driver.core.reflection;
+
+import it.cnr.isti.zigbee.ha.driver.core.HADeviceBase;
+import it.cnr.isti.zigbee.zcl.library.api.core.ZCLCluster;
+
+/**
+ * This class represent static description associated to a generic <b>Home Automation Device</b><br> 
+ * as defined by the document:<br>
+ * <i>ZigBee Home Automation</i> public release version 075123r01ZB
+ * <br>
+ * In particular, this class can be used for inspecting by code the <i>ZigBee Home Automation</i><br>
+ * definition. In fact, all the device belonging to the same <b>DeviceId</b> have a common definition.<br>
+ * Hence, a Singelton implementation that shares a {@link DeviceDescription} among all the {@link HADeviceBase}<br>
+ * objects belonging to the <b>DeviceId</b> is adviced.
+ * 
+ * @author <a href="mailto:stefano.lenzi at isti.cnr.it">Stefano "Kismet" Lenzi</a>
+ * @author <a href="mailto:francesco.furfari at isti.cnr.it">Francesco Furfari</a>
+ * @version $LastChangedRevision: 112 $ ($LastChangedDate: 2010-10-17 00:07:45 +0200 (dom, 17 ott 2010) $)
+ * @since 0.1.0
+ *
+ */
+public interface DeviceDescription {
+    
+	/**
+	 * 
+	 * @return the {@link ZCLCluster} array of all the cluster defined as <b>Optional</b> by the<br>
+	 * 		<i>ZigBee Home Automation</i> profile documentation 
+	 */
+	public int[] getOptionalCluster();
+
+	/**
+	 * 
+	 * @return the {@link ZCLCluster} array of all the cluster defined as <b>Mandatory</b> by the<br>
+	 * 		<i>ZigBee Home Automation</i> profile documentation
+	 */
+	public int[] getMandatoryCluster();
+	
+	/**
+	 * 
+	 * @return
+	 */
+	public int[] getStandardClusters();
+	
+	public int[] getCustomClusters();
+	
+	public boolean isMandatory(int clusterId);
+	public boolean isOptional(int clusterId);
+	public boolean isStandard(int clusterId);
+	public boolean isCustom(int clusterId);
+	
+	
+
+}

Propchange: projects/zb4osgi/sandbox/manlio.bacco/src/main/java/it/cnr/isti/zigbee/ha/driver/core/reflection/DeviceDescription.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain




More information about the Commit mailing list