[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