[zb4osgi-changeset] [scm] ZigBee 4 OSGi repository change: r1091 - in /projects/zb4osgi/members/firmware/open2530/sources: ./ GenericApp-Accelerometer/CC2530DB/ GenericApp-Dongle/CC2530DB/ SensorNode-FC04-PIR-POWER-RELAY-TEMP/OPEN2530/ SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/ ZStack/Components/hal/target/OPEN2530/ ZStack/Projects/zstack/Tools/CC2530DB/ ZStack/Target_OPEN2530/

scm-notify at zb4osgi.aaloa.org scm-notify at zb4osgi.aaloa.org
Wed Nov 12 10:54:55 CET 2014


Author: fabio.mavilia
Date: Wed Nov 12 10:54:55 2014
New Revision: 1091

Log:
Added new endpoint in SensorNode Project.
Added stable DHT22 source file.

Modified:
    projects/zb4osgi/members/firmware/open2530/sources/   (props changed)
    projects/zb4osgi/members/firmware/open2530/sources/GenericApp-Accelerometer/CC2530DB/   (props changed)
    projects/zb4osgi/members/firmware/open2530/sources/GenericApp-Dongle/CC2530DB/GenericApp.ewp
    projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/OPEN2530/   (props changed)
    projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/OPEN2530/SensorNode.ewp
    projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/OSAL_SensorNode.c
    projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode.c
    projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode.h
    projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode_data.c
    projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/hal/target/OPEN2530/hal_timer_OPEN.c
    projects/zb4osgi/members/firmware/open2530/sources/ZStack/Projects/zstack/Tools/CC2530DB/f8wConfig.cfg
    projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/DHT22.c
    projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/DHT22.h
    projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.c
    projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.h

Propchange: projects/zb4osgi/members/firmware/open2530/sources/
------------------------------------------------------------------------------
--- svn:ignore	(added)
+++ svn:ignore	Wed Nov 12 10:54:55 2014
@@ -0,0 +1,3 @@
+GenericApp-DHT22
+SensorNode-FC04-PIR-RELAY(old)
+SensorNode-FSR(old)

Propchange: projects/zb4osgi/members/firmware/open2530/sources/GenericApp-Accelerometer/CC2530DB/
------------------------------------------------------------------------------
--- svn:ignore	(added)
+++ svn:ignore	Wed Nov 12 10:54:55 2014
@@ -0,0 +1,4 @@
+CoordinatorEB
+GenericApp.dep
+RouterEB
+settings

Modified: projects/zb4osgi/members/firmware/open2530/sources/GenericApp-Dongle/CC2530DB/GenericApp.ewp
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/GenericApp-Dongle/CC2530DB/GenericApp.ewp	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/GenericApp-Dongle/CC2530DB/GenericApp.ewp	Wed Nov 12 10:54:55 2014
@@ -274,7 +274,7 @@
         </option>
         <option>
           <name>CCDefines</name>
-          <state>NV_INIT</state>
+          <state>xNV_INIT</state>
           <state>NV_RESTORE</state>
           <state>OSAL_SAPI=FALSE</state>
           <state>ZTOOL_P1</state>

Propchange: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/OPEN2530/
------------------------------------------------------------------------------
--- svn:ignore	(added)
+++ svn:ignore	Wed Nov 12 10:54:55 2014
@@ -0,0 +1,4 @@
+CoordinatorEB
+RouterEB
+SensorNode.dep
+settings

Modified: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/OPEN2530/SensorNode.ewp
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/OPEN2530/SensorNode.ewp	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/OPEN2530/SensorNode.ewp	Wed Nov 12 10:54:55 2014
@@ -1327,11 +1327,10 @@
           <state>MT_ZDO_FUNC</state>
           <state>xLCD_SUPPORTED=DEBUG</state>
           <state>REFLECTOR</state>
-          <state>PIR</state>
-          <state>NOISE</state>
-          <state>xPOWER</state>
+          <state>POWER</state>
+          <state>xPIR</state>
+          <state>xNOISE</state>
           <state>xRELAY</state>
-          <state>xTEMPERATURE</state>
           <state>xDHT22</state>
           <state>xHAL_TIMER=TRUE</state>
           <state>xTIMER_3</state>
@@ -3185,9 +3184,6 @@
     </file>
     <file>
       <name>$PROJ_DIR$\..\Source\SensorNode_data.c</name>
-    </file>
-    <file>
-      <name>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530\temperature.c</name>
     </file>
   </group>
   <group>

Modified: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/OSAL_SensorNode.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/OSAL_SensorNode.c	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/OSAL_SensorNode.c	Wed Nov 12 10:54:55 2014
@@ -73,8 +73,8 @@
 #include "noise.h"
 #endif
 
-#if defined ( TEMPERATURE )
-#include "temperature.h"
+#if defined ( DHT22 )
+#include "DHT22.h"
 #endif
 
 #if defined ( POWER )
@@ -117,8 +117,8 @@
 #if defined ( RELAY )
   Relay_event_loop,
 #endif
-#if defined ( TEMPERATURE )
-  Temperature_event_loop,
+#if defined ( DHT22 )
+  DHT_event_loop,
 #endif
   SensorNode_event_loop
 };
@@ -173,8 +173,8 @@
 #if defined ( RELAY )
   Relay_Init( taskID++ );
 #endif
-#if defined ( TEMPERATURE )
-  Temperature_Init( taskID++ );
+#if defined ( DHT22 )
+  DHT_Init( taskID++ );
 #endif
   SensorNode_Init( taskID );
 }

Modified: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode.c	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode.c	Wed Nov 12 10:54:55 2014
@@ -4,9 +4,11 @@
   Revision:       $Revision: 19453 $
 
 Three Endpoints: 
-EP1: Power
+EP1: POWER
 EP2: PIR
 EP3: NOISE
+EP4: TEMPERATURE
+EP5: HUMIDITY
 EP9: RELAY
 */
 
@@ -40,9 +42,8 @@
 #include "noise.h"
 #endif
 
-#if defined ( TEMPERATURE )
-#include "temperature.h"
-#include "stdio.h"
+#if defined ( DHT22 )
+#include "DHT22.h"
 #endif
 
 #if defined ( POWER )
@@ -57,6 +58,7 @@
 #include "math.h"
 #endif
 
+//#include "stdio.h"
 /*********************************************************************
  * MACROS
  */
@@ -182,8 +184,8 @@
 static void Power_ProcessIncomingMsg( powerIncomingMsg_t *pInMsg );
 #endif
 
-#ifdef TEMPERATURE
-static void Temperature_ProcessIncomingMsg( TemperatureIncomingMsg_t *pInMsg );
+#ifdef DHT22
+static void TemperatureHumidity_ProcessIncomingMsg( TemperatureHumidityIncomingMsg_t *pInMsg );
 #endif
 /*********************************************************************
  * ZCL General Profile Callback table
@@ -251,7 +253,7 @@
   zclHA_Init( &SensorNode_SimpleDesc2 );
   zclHA_Init( &SensorNode_SimpleDesc3 );
   zclHA_Init( &SensorNode_SimpleDesc4 );
-//  zclHA_Init( &SensorNode_SimpleDesc5 );
+  zclHA_Init( &SensorNode_SimpleDesc5 );
 //  zclHA_Init( &SensorNode_SimpleDesc6 );
 //  zclHA_Init( &SensorNode_SimpleDesc7 );
 //  zclHA_Init( &SensorNode_SimpleDesc8 );
@@ -263,7 +265,7 @@
   zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT2, &SensorNode_CmdCallbacks_PValue );
   zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT3, &SensorNode_CmdCallbacks_PValue );
   zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT4, &SensorNode_CmdCallbacks_PValue );
-//  zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT5, &SensorNode_CmdCallbacks_PValue );
+  zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT5, &SensorNode_CmdCallbacks_PValue );
 //  zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT6, &SensorNode_CmdCallbacks_PValue );
 //  zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT7, &SensorNode_CmdCallbacks_PValue );
 //  zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT8, &SensorNode_CmdCallbacks_PValue );
@@ -275,7 +277,7 @@
   zcl_registerAttrList( SensorNode_ENDPOINT2, SENSORNODE_MAX_ATTRIBUTES_PVALUE, SensorNode_Attrs_EP2 );
   zcl_registerAttrList( SensorNode_ENDPOINT3, SENSORNODE_MAX_ATTRIBUTES_PVALUE, SensorNode_Attrs_EP3 );
   zcl_registerAttrList( SensorNode_ENDPOINT4, SENSORNODE_MAX_ATTRIBUTES_PVALUE, SensorNode_Attrs_EP4 );
-//  zcl_registerAttrList( SensorNode_ENDPOINT5, SENSORNODE_MAX_ATTRIBUTES_PVALUE, SensorNode_Attrs_EP5 );
+  zcl_registerAttrList( SensorNode_ENDPOINT5, SENSORNODE_MAX_ATTRIBUTES_PVALUE, SensorNode_Attrs_EP5 );
 //  zcl_registerAttrList( SensorNode_ENDPOINT6, SENSORNODE_MAX_ATTRIBUTES_PVALUE, SensorNode_Attrs_EP6 );
 //  zcl_registerAttrList( SensorNode_ENDPOINT7, SENSORNODE_MAX_ATTRIBUTES_PVALUE, SensorNode_Attrs_EP7 );
 //  zcl_registerAttrList( SensorNode_ENDPOINT8, SENSORNODE_MAX_ATTRIBUTES_PVALUE, SensorNode_Attrs_EP8 );
@@ -295,7 +297,7 @@
   
   for ( uint8 i=0; i < SENSORNODE_MAX_ENDPOINT_PVALUE; i++ )
   {
-    SensorNode_EP_PresentValue[i] = 6.5;
+    SensorNode_EP_PresentValue[i] = 0.0;
     PresentValue_RepStatus[i].value = &SensorNode_EP_PresentValue[i];
     PresentValue_RepStatus[i].Reporting_enabled = NO_REPORTING; //TODO
     
@@ -339,9 +341,9 @@
 #ifdef POWER 
   osal_start_timerEx( SensorNode_TaskID, CONF_THREE_STATE_EVT, CONF_THREE_STATE_TIMEOUT );
 #endif //POWER
-#ifdef TEMPERATURE
-  Temperature_Start_Converting( SensorNode_TaskID );
-#endif //TEMPERATURE
+#ifdef DHT22
+  DHT_Start_Reading( SensorNode_TaskID );
+#endif //DHT22
 }
 
 /*********************************************************************
@@ -388,9 +390,9 @@
             Power_ProcessIncomingMsg( (powerIncomingMsg_t *)MSGpkt );
           break;
 #endif
-#ifdef TEMPERATURE         
-          case TEMPERATURE_INCOMING_MSG:
-            Temperature_ProcessIncomingMsg( (TemperatureIncomingMsg_t *)MSGpkt );
+#ifdef DHT22         
+          case DHT_INCOMING_MSG:
+            TemperatureHumidity_ProcessIncomingMsg( (TemperatureHumidityIncomingMsg_t *)MSGpkt );
           break;
 #endif
           default:
@@ -694,6 +696,77 @@
     return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP4_MAX_EVT );
   }
   
+  //Report PresentValueEP5 min //TODO
+  if ( events & SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MIN_EVT )
+  {  
+    uint8 index = SensorNode_ENDPOINT5 - SensorNode_ENDPOINT1;
+    
+    if( PresentValue_RepStatus[index].maxReportInt > MAX_REPORTING_TIMER_INTERVAL )
+    {
+      osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT,
+                         MAX_REPORTING_TIMER_INTERVAL*1000);
+      
+      PresentValue_RepStatus[index].maxReportInt_n = PresentValue_RepStatus[index].maxReportInt - MAX_REPORTING_TIMER_INTERVAL;
+    }
+    else
+    {
+      PresentValue_RepStatus[index].Reporting_MaxInterval_enabled = REPORTING_ENABLED_READY_TO_SEND;
+      
+      osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT, 
+                         (PresentValue_RepStatus[index].maxReportInt-PresentValue_RepStatus[index].minReportInt)*1000);
+    }
+    
+    PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_READY_TO_SEND;
+    
+    //Clear the event
+    return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MIN_EVT );
+  }
+  
+  //Report PresentValueEP5 max
+  if ( events & SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT )
+  {   
+     uint8 index = SensorNode_ENDPOINT5 - SensorNode_ENDPOINT1;
+     
+     if( PresentValue_RepStatus[index].Reporting_MaxInterval_enabled == REPORTING_ENABLED_READY_TO_SEND ) //Ready to send
+     {
+       if ( pAnalogInputReportCmd[index] != NULL )
+       {
+         //Send the report
+         uint8 status = zcl_SendReportCmd( (index+1), &SensorNode_DstAddr,
+                     ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC, pAnalogInputReportCmd[index],
+                     ZCL_FRAME_SERVER_CLIENT_DIR, 1, PresentValue_RepStatus[index].seqNumRep ); 
+        
+         PresentValue_RepStatus[index].seqNumRep++;
+       }
+       //Restart the timer
+       osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MIN_EVT,
+                       PresentValue_RepStatus[index].minReportInt*1000);
+       //Reset parameters
+       PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_NO_READY_TO_SEND;
+       PresentValue_RepStatus[index].maxReportInt_n = PresentValue_RepStatus[index].maxReportInt;
+       PresentValue_RepStatus[index].Reporting_MaxInterval_enabled = REPORTING_ENABLED_NO_READY_TO_SEND;
+     }
+     else
+     {
+       if( PresentValue_RepStatus[index].maxReportInt_n > MAX_REPORTING_TIMER_INTERVAL )
+       {
+         osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT,
+                         MAX_REPORTING_TIMER_INTERVAL*1000);
+         
+         PresentValue_RepStatus[index].maxReportInt_n -= MAX_REPORTING_TIMER_INTERVAL;
+       }
+       else
+       {
+         osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT,
+                            PresentValue_RepStatus[index].maxReportInt_n*1000 );
+         PresentValue_RepStatus[index].Reporting_MaxInterval_enabled = REPORTING_ENABLED_READY_TO_SEND;
+       }
+     }
+    
+    //Clear the event
+    return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT );
+  }
+  
   //Report PresentValueEP9 min
   if ( events & SensorNode_ONOFF_REPORT_ATTRIBUTE_EP9_MIN_EVT )
   {  
@@ -764,6 +837,9 @@
 #ifdef ZCL_REPORT
     SensorNode_ProcessAttributeReporting( device );
 #endif
+    
+//    printf(" %f", SensorNode_EP_PresentValue[device]);
+    
     Pir_ResetCount( pInMsg->device );
   }
 }
@@ -803,6 +879,9 @@
 #ifdef ZCL_REPORT
     SensorNode_ProcessAttributeReporting( device );
 #endif
+    
+//    printf(" %f \n", SensorNode_EP_PresentValue[device]);
+    
     Noise_ResetCount( pInMsg->device );
   }
 }
@@ -853,9 +932,9 @@
 }
 #endif //POWER
 
-#ifdef TEMPERATURE
-/*********************************************************************
- * @fn      Temperature_ProcessIncomingMsg
+#ifdef DHT22
+/*********************************************************************
+ * @fn      TemperatureHumidity_ProcessIncomingMsg
  *
  * @brief   
  *
@@ -863,21 +942,35 @@
  *
  * @return  none
  */
-static void Temperature_ProcessIncomingMsg( TemperatureIncomingMsg_t *pInMsg )
+static void TemperatureHumidity_ProcessIncomingMsg( TemperatureHumidityIncomingMsg_t *pInMsg )
 {
   //device is the index of PresentValue array. 
   uint8 device = EP4_TEMPERATURE;
   
-  SensorNode_EP_PresentValue[device] = pInMsg->value;
+  SensorNode_EP_PresentValue[device] = pInMsg->temperature;
   
 #ifdef ZCL_REPORT
   SensorNode_ProcessAttributeReporting( device );
 #endif
   
-//  printf(" Temp: %f", SensorNode_EP_PresentValue[device]);
-}
-
-#endif //TEMPERATURE
+  //device is the index of PresentValue array. 
+  device = EP5_HUMIDITY;
+  
+  SensorNode_EP_PresentValue[device] = pInMsg->humidity;
+  
+#ifdef ZCL_REPORT
+  SensorNode_ProcessAttributeReporting( device );
+#endif
+  
+//  float temp = pInMsg->temperature;
+//  float hum = pInMsg->humidity;
+//  printf("\n");
+//  printf(" %f", temp);
+//  printf(" %f", hum);
+  
+}
+
+#endif //DHT22
 
 /*********************************************************************/
 
@@ -1437,11 +1530,11 @@
     case SensorNode_ENDPOINT4:
       evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP4_MIN_EVT;
       break;
-//      
-//    case SensorNode_ENDPOINT5:
-//      evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MIN_EVT;
-//      break;
-//      
+      
+    case SensorNode_ENDPOINT5:
+      evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MIN_EVT;
+      break;
+      
 //    case SensorNode_ENDPOINT6:
 //      evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP6_MIN_EVT;
 //      break;
@@ -1500,11 +1593,11 @@
     case SensorNode_ENDPOINT4:
       evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP4_MAX_EVT;
       break;
-//      
-//    case SensorNode_ENDPOINT5:
-//      evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT;
-//      break;
-//      
+      
+    case SensorNode_ENDPOINT5:
+      evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT;
+      break;
+      
 //    case SensorNode_ENDPOINT6:
 //      evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP6_MAX_EVT;
 //      break;

Modified: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode.h	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode.h	Wed Nov 12 10:54:55 2014
@@ -40,7 +40,7 @@
 #define SENSORNODE_MAX_ATTRIBUTES_PVALUE       21
 #define SENSORNODE_MAX_ATTRIBUTES_ONOFF 13
   
-#define SENSORNODE_MAX_ENDPOINT_PVALUE  4 //max number of reportable endpoints
+#define SENSORNODE_MAX_ENDPOINT_PVALUE  5 //max number of reportable endpoints
 #define SENSORNODE_MAX_ENDPOINT_ONOFF   1 //max number of reportable endpoints
 
   
@@ -54,8 +54,9 @@
 #ifdef NOISE
 #define EP3_NOISE                       2
 #endif
-#ifdef TEMPERATURE
+#ifdef DHT22
 #define EP4_TEMPERATURE                 3
+#define EP5_HUMIDITY                    4
 #endif
 
 // Application Events
@@ -70,8 +71,10 @@
 #define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MAX_EVT        0x0040
 #define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP4_MIN_EVT        0x0080
 #define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP4_MAX_EVT        0x0100
-#define SensorNode_ONOFF_REPORT_ATTRIBUTE_EP9_MIN_EVT               0x0200
-#define SensorNode_ONOFF_REPORT_ATTRIBUTE_EP10_MIN_EVT              0x0400
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MIN_EVT        0x0200
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP5_MAX_EVT        0x0400
+#define SensorNode_ONOFF_REPORT_ATTRIBUTE_EP9_MIN_EVT               0x0800
+#define SensorNode_ONOFF_REPORT_ATTRIBUTE_EP10_MIN_EVT              0x1000
   
 //Event for Reporting On/Off timeout event.
 #define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_TIMEOUT_EVT    0x4000

Modified: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode_data.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode_data.c	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER-RELAY-TEMP/Source/SensorNode_data.c	Wed Nov 12 10:54:55 2014
@@ -878,207 +878,207 @@
 
 }; 
 
-//
-///*********************************************************************
-// * ATTRIBUTE DEFINITIONS FOR ENDPOINT 5- Uses REAL cluster IDs
-// */
-//CONST zclAttrRec_t SensorNode_Attrs_EP5[SENSORNODE_MAX_ATTRIBUTES_PVALUE] =
-//{
-//  // *** General Basic Cluster Attributes ***
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,             // Cluster IDs - defined in the foundation (ie. zcl.h)
-//    {  // Attribute record
-//      ATTRID_BASIC_HW_VERSION,            // Attribute ID - Found in Cluster Library header (ie. zcl_general.h)
-//      ZCL_DATATYPE_UINT8,                 // Data Type - found in zcl.h
-//      ACCESS_CONTROL_READ,                // Variable access control - found in zcl.h
-//      (void *)&SensorNode_HWRevision  // Pointer to attribute variable
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_ZCL_VERSION,
-//      ZCL_DATATYPE_UINT8,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_ZCLVersion
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_APPL_VERSION,
-//      ZCL_DATATYPE_UINT8,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_ApplicationVersion
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_STACK_VERSION,
-//      ZCL_DATATYPE_UINT8,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_StackVersion
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_MANUFACTURER_NAME,
-//      ZCL_DATATYPE_CHAR_STR,
-//      ACCESS_CONTROL_READ,
-//      (void *)SensorNode_ManufacturerName
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_MODEL_ID,
-//      ZCL_DATATYPE_CHAR_STR,
-//      ACCESS_CONTROL_READ,
-//      (void *)SensorNode_ModelId
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_DATE_CODE,
-//      ZCL_DATATYPE_CHAR_STR,
-//      ACCESS_CONTROL_READ,
-//      (void *)SensorNode_DateCode
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_POWER_SOURCE,
-//      ZCL_DATATYPE_UINT8,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_PowerSource
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_LOCATION_DESC,
-//      ZCL_DATATYPE_CHAR_STR,
-//      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
-//      (void *)SensorNode_LocationDescription
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_PHYSICAL_ENV,
-//      ZCL_DATATYPE_UINT8,
-//      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
-//      (void *)&SensorNode_PhysicalEnvironment
-//    }
-//  },
-//  {
-//    ZCL_CLUSTER_ID_GEN_BASIC,
-//    { // Attribute record
-//      ATTRID_BASIC_DEVICE_ENABLED,
-//      ZCL_DATATYPE_BOOLEAN,
-//      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
-//      (void *)&SensorNode_DeviceEnable
-//    }
-//  },
-//
-//  // *** Identify Cluster Attribute ***
-//  {
-//    ZCL_CLUSTER_ID_GEN_IDENTIFY,
-//    { // Attribute record
-//      ATTRID_IDENTIFY_TIME,
-//      ZCL_DATATYPE_UINT16,
-//      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
-//      (void *)&SensorNode_IdentifyTime
-//    }
-//  },
-//
-//  // *** Analog Input Cluster Attributes ***
-//  {
-//    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
-//    { // Attribute record
-//      ATTRID_IOV_BASIC_DESCRIPTION,
-//      ZCL_DATATYPE_CHAR_STR,
-//      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
-//      (void *)&SensorNode_Description_1
-//    }
-//  },
-//  
-//  {
-//    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
-//    { // Attribute record
-//      ATTRID_IOV_BASIC_MAX_PRESENT_VALUE,
-//      ZCL_DATATYPE_SINGLE_PREC,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_MaxPresentValue
-//    }
-//  },
-//  
-//  {
-//    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
-//    { // Attribute record
-//      ATTRID_IOV_BASIC_MIN_PRESENT_VALUE,
-//      ZCL_DATATYPE_SINGLE_PREC,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_MinPresentValue
-//    }
-//  },
-//  
-//  {
-//    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
-//    { // Attribute record
-//      ATTRID_IOV_BASIC_OUT_OF_SERVICE,
-//      ZCL_DATATYPE_BOOLEAN,
-//      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
-//      (void *)&SensorNode_OutOfService
-//    }
-//  },
-//  
-//  {
-//    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
-//    { // Attribute record
-//      ATTRID_IOV_BASIC_PRESENT_VALUE,
-//      ZCL_DATATYPE_SINGLE_PREC,
-//      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
-//      (void *)&SensorNode_EP_PresentValue[4]
-//    }
-//  },
-//  
-//  {
-//    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
-//    { // Attribute record
-//      ATTRID_IOV_BASIC_RELIABILITY,
-//      ZCL_DATATYPE_ENUM8,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_Reliability
-//    }
-//  },
-//  
-//  {
-//    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
-//    { // Attribute record
-//      ATTRID_IOV_BASIC_RESOLUTION,
-//      ZCL_DATATYPE_SINGLE_PREC,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_Resolution
-//    }
-//  },
-//  
-//  {
-//    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
-//    { // Attribute record
-//      ATTRID_IOV_BASIC_STATUS_FLAG,
-//      ZCL_DATATYPE_BITMAP8,
-//      ACCESS_CONTROL_READ,
-//      (void *)&SensorNode_StatusFlag
-//    }
-//  },
-//
-//}; 
-//
+
+/*********************************************************************
+ * ATTRIBUTE DEFINITIONS FOR ENDPOINT 5- Uses REAL cluster IDs
+ */
+CONST zclAttrRec_t SensorNode_Attrs_EP5[SENSORNODE_MAX_ATTRIBUTES_PVALUE] =
+{
+  // *** General Basic Cluster Attributes ***
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,             // Cluster IDs - defined in the foundation (ie. zcl.h)
+    {  // Attribute record
+      ATTRID_BASIC_HW_VERSION,            // Attribute ID - Found in Cluster Library header (ie. zcl_general.h)
+      ZCL_DATATYPE_UINT8,                 // Data Type - found in zcl.h
+      ACCESS_CONTROL_READ,                // Variable access control - found in zcl.h
+      (void *)&SensorNode_HWRevision  // Pointer to attribute variable
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_ZCL_VERSION,
+      ZCL_DATATYPE_UINT8,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_ZCLVersion
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_APPL_VERSION,
+      ZCL_DATATYPE_UINT8,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_ApplicationVersion
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_STACK_VERSION,
+      ZCL_DATATYPE_UINT8,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_StackVersion
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_MANUFACTURER_NAME,
+      ZCL_DATATYPE_CHAR_STR,
+      ACCESS_CONTROL_READ,
+      (void *)SensorNode_ManufacturerName
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_MODEL_ID,
+      ZCL_DATATYPE_CHAR_STR,
+      ACCESS_CONTROL_READ,
+      (void *)SensorNode_ModelId
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_DATE_CODE,
+      ZCL_DATATYPE_CHAR_STR,
+      ACCESS_CONTROL_READ,
+      (void *)SensorNode_DateCode
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_POWER_SOURCE,
+      ZCL_DATATYPE_UINT8,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_PowerSource
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_LOCATION_DESC,
+      ZCL_DATATYPE_CHAR_STR,
+      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+      (void *)SensorNode_LocationDescription
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_PHYSICAL_ENV,
+      ZCL_DATATYPE_UINT8,
+      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+      (void *)&SensorNode_PhysicalEnvironment
+    }
+  },
+  {
+    ZCL_CLUSTER_ID_GEN_BASIC,
+    { // Attribute record
+      ATTRID_BASIC_DEVICE_ENABLED,
+      ZCL_DATATYPE_BOOLEAN,
+      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+      (void *)&SensorNode_DeviceEnable
+    }
+  },
+
+  // *** Identify Cluster Attribute ***
+  {
+    ZCL_CLUSTER_ID_GEN_IDENTIFY,
+    { // Attribute record
+      ATTRID_IDENTIFY_TIME,
+      ZCL_DATATYPE_UINT16,
+      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+      (void *)&SensorNode_IdentifyTime
+    }
+  },
+
+  // *** Analog Input Cluster Attributes ***
+  {
+    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
+    { // Attribute record
+      ATTRID_IOV_BASIC_DESCRIPTION,
+      ZCL_DATATYPE_CHAR_STR,
+      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+      (void *)&SensorNode_Description_1
+    }
+  },
+  
+  {
+    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
+    { // Attribute record
+      ATTRID_IOV_BASIC_MAX_PRESENT_VALUE,
+      ZCL_DATATYPE_SINGLE_PREC,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_MaxPresentValue
+    }
+  },
+  
+  {
+    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
+    { // Attribute record
+      ATTRID_IOV_BASIC_MIN_PRESENT_VALUE,
+      ZCL_DATATYPE_SINGLE_PREC,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_MinPresentValue
+    }
+  },
+  
+  {
+    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
+    { // Attribute record
+      ATTRID_IOV_BASIC_OUT_OF_SERVICE,
+      ZCL_DATATYPE_BOOLEAN,
+      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+      (void *)&SensorNode_OutOfService
+    }
+  },
+  
+  {
+    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
+    { // Attribute record
+      ATTRID_IOV_BASIC_PRESENT_VALUE,
+      ZCL_DATATYPE_SINGLE_PREC,
+      (ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE),
+      (void *)&SensorNode_EP_PresentValue[4]
+    }
+  },
+  
+  {
+    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
+    { // Attribute record
+      ATTRID_IOV_BASIC_RELIABILITY,
+      ZCL_DATATYPE_ENUM8,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_Reliability
+    }
+  },
+  
+  {
+    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
+    { // Attribute record
+      ATTRID_IOV_BASIC_RESOLUTION,
+      ZCL_DATATYPE_SINGLE_PREC,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_Resolution
+    }
+  },
+  
+  {
+    ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC,
+    { // Attribute record
+      ATTRID_IOV_BASIC_STATUS_FLAG,
+      ZCL_DATATYPE_BITMAP8,
+      ACCESS_CONTROL_READ,
+      (void *)&SensorNode_StatusFlag
+    }
+  },
+
+}; 
+
 //
 ///*********************************************************************
 // * ATTRIBUTE DEFINITIONS FOR ENDPOINT 6- Uses REAL cluster IDs

Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/hal/target/OPEN2530/hal_timer_OPEN.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/hal/target/OPEN2530/hal_timer_OPEN.c	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/hal/target/OPEN2530/hal_timer_OPEN.c	Wed Nov 12 10:54:55 2014
@@ -124,7 +124,8 @@
                   HAL_TIMER_MODE_NORMAL, 
                   HAL_TIMER_CHANNEL_SINGLE, 
                   HAL_TIMER_CH_MODE_OVERFLOW, 
-                  HAL_TIMER3_8_TC_PRE16, // (16*256)/32MHz = 128us
+                  HAL_TIMER3_8_TC_PRE32, // (32*256)/32MHz = 256us
+                  /*HAL_TIMER3_8_TC_PRE16, // (16*256)/32MHz = 128us*/
                   /* HAL_TIMER3_8_TC_PRE128, // (128*256)/32MHz = 1.024ms */
                   HAL_TIMER_FREE_RUNNING,
                   FALSE, //no interrupt enabled 

Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Projects/zstack/Tools/CC2530DB/f8wConfig.cfg
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Projects/zstack/Tools/CC2530DB/f8wConfig.cfg	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Projects/zstack/Tools/CC2530DB/f8wConfig.cfg	Wed Nov 12 10:54:55 2014
@@ -46,8 +46,8 @@
 //-DDEFAULT_CHANLIST=0x00010000  // 16 - 0x10
 //-DDEFAULT_CHANLIST=0x00008000  // 15 - 0x0F
 //-DDEFAULT_CHANLIST=0x00004000  // 14 - 0x0E
-//-DDEFAULT_CHANLIST=0x00002000  // 13 - 0x0D
--DDEFAULT_CHANLIST=0x00001000  // 12 - 0x0C
+-DDEFAULT_CHANLIST=0x00002000  // 13 - 0x0D
+//-DDEFAULT_CHANLIST=0x00001000  // 12 - 0x0C
 //-DDEFAULT_CHANLIST=0x00000800  // 11 - 0x0B
 
 /* Define the default PAN ID.

Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/DHT22.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/DHT22.c	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/DHT22.c	Wed Nov 12 10:54:55 2014
@@ -7,6 +7,8 @@
 #include "OnBoard.h"
 #include "OSAL_Tasks.h"
 #include "hal_timer.h"
+
+//#include "stdio.h"
 /*********************************************************************
 * CONSTANTS
 */
@@ -66,6 +68,7 @@
  */
 uint16 DHT_event_loop( uint8 task_id, uint16 events )
 {
+  uint8 status; //TODO
   switch ( events ) 
   {
     case DHT_WAIT_EVT:
@@ -76,9 +79,27 @@
 	  DHT_Write();
 	  return ( events ^ DHT_INIT_READ_EVT );
 	
-	case DHT_READY_TO_READ_EVT:
-	  DHT_Read();
-	  return ( events ^ DHT_READY_TO_READ_EVT );
+    case DHT_READY_TO_READ_EVT:
+	  status = DHT_Read();
+
+          if( status == DHT_TRANSFER_OK )
+          {
+//            printf("\nDHT_TRANSFER_OK Humidity: %f", Variables.humidity);
+//            printf("     Temperature: %f", Variables.temperature);
+            asm("NOP");
+          }
+          else if( status == DHT_ERROR_TIMEOUT )
+            asm("NOP");
+//            printf("\nDHT_ERROR_TIMEOUT");
+          else
+            asm("NOP");
+//            printf("\nDHT_ERROR_CHECKSUM");
+          
+          HalTimerStop( HAL_TIMER_3 );  //moved from Read
+          HalTimerClear( HAL_TIMER_3 ); //moved from Read
+          DHT_Wait();                   //moved from Read
+          
+          return ( events ^ DHT_READY_TO_READ_EVT );
 	
     default:
       return 0;
@@ -118,7 +139,7 @@
     for( uint8 j=0; j<DATA_LENGTH; j++ )
 	{
 	  loopCnt = LOOP_TIMEOUT;
-      while(!(GET_DQ()))  //waiting for slave signal down
+          while(!(GET_DQ()))  //waiting for slave signal down
 		if( ( loopCnt-- ) == 0 ) return DHT_ERROR_TIMEOUT;   
 	  
 	  uint8 t = T3CNT;
@@ -127,17 +148,26 @@
 	  while(GET_DQ())  //waiting for slave signal up
 	    if( ( loopCnt-- ) == 0 ) return DHT_ERROR_TIMEOUT; 
 	
-	  if( ( T3CNT - t) > 40 )
-	    data[i] |= mask; // 1 save it
+          if( ( T3CNT - t) > 0 )
+          {
+	    if( ( T3CNT - t) > 40 )
+	      data[i] |= mask; // 1 save it
+          }
+          else
+          {
+            if( ((0xFF - t) + T3CNT) > 40 )
+              data[i] |= mask; // 1 save it
+          }
 	
 	  mask >>= 1;
 	}
   }
   
   Onboard_wait(50);
-  HalTimerStop( HAL_TIMER_3 );
-  HalTimerClear( HAL_TIMER_3 );
-  DHT_Wait();
+  
+//  HalTimerStop( HAL_TIMER_3 );  //  Moved to higher level!!!
+//  HalTimerClear( HAL_TIMER_3 ); //  Moved to higher level!!!
+//  DHT_Wait();                   //  Moved to higher level!!!
   
   if( DHT_Process_Data() == DHT_TRANSFER_OK )
   {
@@ -199,7 +229,7 @@
 {
   DHT_Application_TaskID = TaskID;
   
-  osal_set_event( DHT_TaskID, DHT_INIT_READ_EVT );
+  osal_set_event( DHT_TaskID, DHT_WAIT_EVT );
 }
 
 /*********************************************************************
@@ -269,12 +299,12 @@
  */
 uint8 static DHT_SendMsg ( void )
 {
-  DHT_IncomingMsg_t *pCmd;
+  TemperatureHumidityIncomingMsg_t *pCmd;
   
   if ( DHT_Application_TaskID == TASK_NO_TASK )
     return ( TRUE );
   
-  pCmd = (DHT_IncomingMsg_t *)osal_msg_allocate( sizeof ( DHT_IncomingMsg_t ) );
+  pCmd = (TemperatureHumidityIncomingMsg_t *)osal_msg_allocate( sizeof ( TemperatureHumidityIncomingMsg_t ) );
   
   if ( pCmd != NULL )
   {
@@ -292,4 +322,4 @@
 
 /*********************************************************************/
 
-#endif
+#endif //DHT22

Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/DHT22.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/DHT22.h	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/DHT22.h	Wed Nov 12 10:54:55 2014
@@ -11,7 +11,7 @@
 #define LOOP_TIMEOUT						900
 #define MINUTES_BETWEEN_READINGS			        1
 #define SECONDS_IN_A_MINUTE					60
-#define EXPIRY_TIME_DEFAULT					5 //( SECONDS_IN_A_MINUTE * MINUTES_BETWEEN_READINGS )
+#define EXPIRY_TIME_DEFAULT					30 //( SECONDS_IN_A_MINUTE * MINUTES_BETWEEN_READINGS )
 
 #define WRITE_ZERO_TIMEOUT					1 //1 millisecond
 #define DATA_LENGTH							8
@@ -41,7 +41,11 @@
   osal_event_hdr_t hdr;         // OSAL header
   double humidity;
   double temperature;
-}DHT_IncomingMsg_t;
+}TemperatureHumidityIncomingMsg_t;
+
+/*********************************************************************
+*  VARIABLES
+*/
 
 /*********************************************************************
 *  FUNCTIONS

Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.c	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.c	Wed Nov 12 10:54:55 2014
@@ -17,6 +17,7 @@
 #include "OSAL.h"
 #include "OSAL_Tasks.h"
 #include "math.h"
+#include "OSAL_Nv.h" //NV_TEST
 
 /*********************************************************************
  * CONSTANTS
@@ -71,22 +72,27 @@
   Voltage.resolution = HAL_ADC_RESOLUTION_OPEN_10;
   Voltage.posPeak = (MAX_SAMPLE_VALUE-1);
   Voltage.negPeak = 0;
-  Voltage.RATIO = (230.0*11.0/10.85) * (3.3 / ( SetRef(Voltage.resolution) - 1)); // schedina 1
-//  Voltage.RATIO = (230.0*11.0/10.45) * (3.3 / ( SetRef(Voltage.resolution) - 1));  // schedina 2
+//  Voltage.RATIO = (230.0*11.0/10.9) * (3.3 / ( SetRef(Voltage.resolution) - 1)); // schedina 1,2
+//  Voltage.RATIO = (230.0*11.0/11.05) * (3.3 / ( SetRef(Voltage.resolution) - 1)); //schedina 3
+//  Voltage.RATIO = (230.0*11.0/10.77) * (3.3 / ( SetRef(Voltage.resolution) - 1)); //schedina 4
+  Voltage.RATIO = (230.0*11.0/10.23) * (3.3 / ( SetRef(Voltage.resolution) - 1)); // schedina 5
   // 230.0 : tensione di rete
   // 11: fattore di scala (100k+10k)/10k
   // 10.45: tensione nominale del trasformatore
   
+  float DEFAULT = ( MAX_SAMPLE_VALUE/2 );
   for( uint8 i = 0; i<CHANNELS_NUMBER; i++)
   {
     Current[i].resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-    Current[i].posPeak = MAX_SAMPLE_VALUE/2;
-    Current[i].negPeak = MAX_SAMPLE_VALUE/2;
-    Current[i].zero = MAX_SAMPLE_VALUE/2;
-//  Current[i].RATIO = ( ( 2000.0 / 440.0 ) * (3.3 / ( SetRef(Current[i].resolution) - 1)));  //schedina 1 CT1
-//    Current[i].RATIO = ( ( 2000.0 / 101.5 ) * (3.3 / ( SetRef(Current[i].resolution) - 1)));  //schedina 1 CT2
-    Current[i].RATIO = ( 19.07 /*( 2000.0 / 114.0 )*/ * (3.3 / ( SetRef(Current[i].resolution) - 1)));   //schedina 2 CT1
-//    Current[i].RATIO = ( 16.17 /*( 2000.0 / 120.0 )*/ * (3.3 / ( SetRef(Current[i].resolution) - 1)));   //schedina 3 CT1
+//    Current[i].posPeak = DEFAULT; //NV_TEST
+//    Current[i].negPeak = DEFAULT; //NV_TEST
+//    Current[i].zero = DEFAULT; //NV_TEST
+    
+//    Current[i].RATIO = ( 20.38 /*( 2000.0 / 114.0 )*/ * (3.3 / ( SetRef(Current[i].resolution) - 1)));   //schedina 1 CT1
+//    Current[i].RATIO = ( 16.96 /*( 2000.0 / 114.0 )*/ * (3.3 / ( SetRef(Current[i].resolution) - 1)));   //schedina 2 CT1
+//    Current[i].RATIO = ( 20.23 /*( 2000.0 / 114.0 )*/ * (3.3 / ( SetRef(Current[i].resolution) - 1)));   //schedina 3 CT1
+//    Current[i].RATIO = ( 20.51 /*( 2000.0 / 114.0 )*/ * (3.3 / ( SetRef(Current[i].resolution) - 1)));   //schedina 4 CT2
+    Current[i].RATIO = ( 18.25 /*( 2000.0 / 114.0 )*/ * (3.3 / ( SetRef(Current[i].resolution) - 1)));   //schedina 5 CT2
   // 2000: fattore di trasformazione del trasformatore
   // 114: resistenza di burden
     switch(i)
@@ -103,10 +109,42 @@
     Power[i].sumP = 0;
     Power[i].realPower = 0;
     Power[i].energy = 0;
+    
+    //NV_TEST
+    uint8 status = osal_nv_item_init( POWER_NV_ZEROI, sizeof(Current[i].zero), NULL );
+    if ( status != ZSUCCESS )
+    {
+      osal_nv_write( POWER_NV_ZEROI, 0, sizeof(Current[i].zero), &DEFAULT );
+      Current[i].zero = ( DEFAULT );
+    }
+    else
+    {
+      osal_nv_read( POWER_NV_ZEROI, 0, sizeof(Current[i].zero), &Current[i].zero );
+    }
+    
+    status = osal_nv_item_init( POWER_NV_POSPEAKI, sizeof(Current[i].posPeak), NULL );
+    if ( status != ZSUCCESS )
+    {
+      osal_nv_write( POWER_NV_POSPEAKI, 0, sizeof(Current[i].posPeak), &DEFAULT );
+      Current[i].posPeak = DEFAULT;
+    }
+    else
+      osal_nv_read( POWER_NV_POSPEAKI, 0, sizeof(Current[i].posPeak), &Current[i].posPeak );
+    
+    status = osal_nv_item_init( POWER_NV_NEGPEAKI, sizeof(Current[i].negPeak), NULL );
+    if ( status != ZSUCCESS )
+    {
+      osal_nv_write( POWER_NV_NEGPEAKI, 0, sizeof(Current[i].negPeak), &DEFAULT );
+      Current[i].negPeak = DEFAULT;
+    }
+    else
+      osal_nv_read( POWER_NV_NEGPEAKI, 0, sizeof(Current[i].negPeak), &Current[i].negPeak );
+    
   }
   
   numberOfSamples = 0;
   channel = 0;
+  
   
 }
   
@@ -205,7 +243,7 @@
   if( Power[channel].realPower < 0 )
     Power[channel].realPower = 0;
   
-  Power[channel].energy += ( Power[channel].realPower * 0.00174722 ); // (170 * 37ms)/3600s = Wattora
+//  Power[channel].energy += ( Power[channel].realPower * 0.00174722 ); // (170 * 37ms)/3600s = Wattora
 
 //  osal_set_event( Power_Application_TaskID, NEW_READY_SAMPLES_EVT );
   Power_SendMsg();
@@ -220,6 +258,10 @@
   else 
     channel = 0;
 #endif
+  
+  osal_nv_write( POWER_NV_ZEROI, 0, sizeof(Current[channel].zero), &Current[channel].zero );
+  osal_nv_write( POWER_NV_POSPEAKI, 0, sizeof(Current[channel].posPeak), &Current[channel].posPeak );
+  osal_nv_write( POWER_NV_NEGPEAKI, 0, sizeof(Current[channel].negPeak), &Current[channel].negPeak );
   
 }
 

Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.h	(original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.h	Wed Nov 12 10:54:55 2014
@@ -29,9 +29,13 @@
 #define SAMPLE_PROCESSING_EVT		      0x0003
 #define FINISH_READINGS_BLOCK_EVT             0x0004
 
-#define CONF_THREE_STATE_EVT                  0x0200
+#define CONF_THREE_STATE_EVT                  0x2000
 
 #define POWER_INCOMING_MSG                    0xE0
+
+#define POWER_NV_ZEROI                        0x0401 //NV_TEST
+#define POWER_NV_POSPEAKI                     0x0405 //NV_TEST
+#define POWER_NV_NEGPEAKI                     0x0409 //NV_TEST
 /*********************************************************************
  * VARIABLES
  */




More information about the Commit mailing list