[zb4osgi-changeset] [scm] ZigBee 4 OSGi repository change: r998 - in /projects/zb4osgi/members/firmware/open2530/sources: MeteringDevice/OPEN2530/ MeteringDevice/Source/ SensorNode-FC04-PIR-POWER/ SensorNode-FC04-PIR-POWER/OPEN2530/ SensorNode-FC04-PIR-POWER/Source/ ZStack/Components/stack/zcl/ ZStack/Target_OPEN2530/
scm-notify at zb4osgi.aaloa.org
scm-notify at zb4osgi.aaloa.org
Thu Apr 24 16:09:16 CEST 2014
Author: fabio.mavilia
Date: Thu Apr 24 16:09:16 2014
New Revision: 998
Log:
new Reporting functionalities
NOBOARD functionality, multi channel and power structures in "Sensing" code
added "power" code with new messages exchange
modified "fsr" code for multi-channel functionalities
added "SensorNode" project with NOISE, PIR, POWER and new Reporting functionalities
Added:
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.ewd
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.ewp
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.eww
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/OSAL_SensorNode.c
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode.c
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode.h
projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode_data.c
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.c
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.h
Modified:
projects/zb4osgi/members/firmware/open2530/sources/MeteringDevice/OPEN2530/MeteringDevice.ewp
projects/zb4osgi/members/firmware/open2530/sources/MeteringDevice/Source/MeteringDevice.c
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/stack/zcl/zcl.c
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/stack/zcl/zcl.h
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fc04.c
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fc04.h
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fsr400.c
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fsr400.h
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/sensing_POT.c
projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/sensing_POT.h
Modified: projects/zb4osgi/members/firmware/open2530/sources/MeteringDevice/OPEN2530/MeteringDevice.ewp
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/MeteringDevice/OPEN2530/MeteringDevice.ewp (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/MeteringDevice/OPEN2530/MeteringDevice.ewp Thu Apr 24 16:09:16 2014
@@ -1326,9 +1326,6 @@
<state>MT_SYS_FUNC</state>
<state>MT_ZDO_FUNC</state>
<state>xLCD_SUPPORTED=DEBUG</state>
- <state>xMETERING</state>
- <state>xANALOG_INPUT</state>
- <state>xSENSING_OEM</state>
<state>SENSING_POT</state>
<state>xHAL_TIMER</state>
<state>xTIMER_1</state>
@@ -3171,9 +3168,6 @@
</file>
<file>
<name>$PROJ_DIR$\..\Source\OSAL_MeteringDevice.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530\sensing_OEM.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530\sensing_POT.c</name>
Modified: projects/zb4osgi/members/firmware/open2530/sources/MeteringDevice/Source/MeteringDevice.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/MeteringDevice/Source/MeteringDevice.c (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/MeteringDevice/Source/MeteringDevice.c Thu Apr 24 16:09:16 2014
@@ -126,7 +126,7 @@
#ifdef SENSING_POT
extern SingleSensingConf_t Voltage;
-extern SingleSensingConf_t Current;
+extern SingleSensingConf_t Current[CHANNELS_NUMBER];
float IRMS;
float VRMS;
#endif
@@ -365,6 +365,7 @@
//Reset the timer. Time out in ms so *1000 to get seconds
osal_start_timerEx( MeteringDevice_TaskID, METERINGDEVICE_ANALOG_INPUT_REPORT_ATTRIBUTE_EVT, AnalogInputReportInterval*1000 );
seqNumRep++;
+ lastPresentValue = MeteringDevice_PresentValue;
}
}
}
@@ -372,8 +373,6 @@
//restart the timer and waiting for a change of the value
osal_start_timerEx( MeteringDevice_TaskID, METERINGDEVICE_ANALOG_INPUT_REPORT_ATTRIBUTE_EVT, AnalogInputReportInterval*1000 );
}
-
- lastPresentValue = MeteringDevice_PresentValue;
//Clear the event
return ( events ^ METERINGDEVICE_ANALOG_INPUT_REPORT_ATTRIBUTE_EVT );
@@ -391,9 +390,9 @@
if ( events & NEW_READY_SAMPLES_EVT )
{
VRMS = GetRMS ( &Voltage );
- IRMS = GetRMS ( &Current );
-
- float Real_power = GetRealPower();
+ IRMS = GetRMS ( &Current[0] );
+
+ float Real_power = GetRealPower( 0 );
if ( Real_power >= 0)
MeteringDevice_PresentValue = Real_power;
@@ -401,7 +400,7 @@
MeteringDevice_PresentValue = 0;
// printf("\n");
-// printf(" %f", IRMS);
+// printf("1 %f", IRMS);
// printf(" %f", VRMS);
// printf(" %f", MeteringDevice_PresentValue);
Added: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.ewd
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.ewd (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.ewd Thu Apr 24 16:09:16 2014
@@ -1,0 +1,1906 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<project>
+ <fileVersion>2</fileVersion>
+ <configuration>
+ <name>CoordinatorEB</name>
+ <toolchain>
+ <name>8051</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>C-SPY</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>7</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>GoToEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GoToName</name>
+ <state>main</state>
+ </option>
+ <option>
+ <name>MemOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>d24BitData</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger code model</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Sim extended stack</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger DPTR Settings</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger Code Banking</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DebuggerMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DynDriver</name>
+ <state>CHIPCON_ID</state>
+ </option>
+ <option>
+ <name>Debugger Extra Options Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Debugger Extra Options Edit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Debugger data model</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck1</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck3</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath3</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DdfFile slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DdfFile master</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\ioCC2530.ddf</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>_3RD_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>Third-Party Driver Mandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Third-Party Driver File Name Edit</name>
+ <state>ThirdPartyDriver.dll</state>
+ </option>
+ <option>
+ <name>Third-Party Driver LogFile Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Third-Party Driver LogFile Edit</name>
+ <state>cspycomm.log</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CHIPCON_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>3</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>ChipconDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconEraseFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainMemory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconVerifyDownload</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconVerifyRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconReduceSpeed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconStackOverflow</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconNoBanks</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>ChipconLogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLogComFile</name>
+ <state>communication.log</state>
+ </option>
+ <option>
+ <name>ChipconFlashLock</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconFlashLockInfo</name>
+ <state><page size info. missing></state>
+ </option>
+ <option>
+ <name>ChipconBootLock</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconDebugLock</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLockFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLockLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainPagesCtrl</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainPages</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ChipconFlashPages</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ChipconFlashRadio</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>FS2_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>Fs2DriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Configuration</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Has program RAM</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Program RAM areas</name>
+ <state>0x8000-0x87FF,0xC000-0xC7FF</state>
+ </option>
+ <option>
+ <name>Has program Flash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Program Flash cfg entry</name>
+ <state>nRF24LU1</state>
+ </option>
+ <option>
+ <name>Program Flash areas</name>
+ <state>0x0000-0x7FFF</state>
+ </option>
+ <option>
+ <name>FS2SuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FS2VerifyDownload</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>INFINEON_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>InfineonDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>InfineonEraseFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfServerAddr</name>
+ <state>localhost</state>
+ </option>
+ <option>
+ <name>InfServerName</name>
+ <state>JTAG over USB Box</state>
+ </option>
+ <option>
+ <name>InfKey1</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey3</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey4</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfConnection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonSwBp</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>NS_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>NsDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NSSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NSVerifyDownload</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ROM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>2</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>RomDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>SuppressLoad</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>VerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AllComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>6</state>
+ </option>
+ <option>
+ <name>Parity</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>DataBits</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>StopBits</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Handshake</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>cspycomm.log</state>
+ </option>
+ <option>
+ <name>ToggleDTR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ToggleRTS</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AD2_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>6</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CygnalDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CygnVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>6</state>
+ </option>
+ <option>
+ <name>CygnComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ADuC8xx</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ADuCpuClockFrequency</name>
+ <state>12582912</state>
+ </option>
+ <option>
+ <name>OverrideCpuClkFreq</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AD2EraseDataFlash</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debug Interface</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CYGNAL_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CygnalDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CygnSuppressLoad</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CygnVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CygnProtocol</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CygnComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>drv_silabs_page_size</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsUsb</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsPowerTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsMulDevices</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsDevBefore</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsDevAfter</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsRegBefore</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsRegAfter</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>_SENSIUM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>TI Sensium Driver Mandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver File Name Edit</name>
+ <state>tiSensiumDbg.dll</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver LogFile Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver LogFile Edit</name>
+ <state>cspycomm.log</state>
+ </option>
+ <option>
+ <name>SensiumSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumES2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumProgramEPROM</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>SIM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>SimDriverMandatory</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <debuggerPlugins>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ </debuggerPlugins>
+ </configuration>
+ <configuration>
+ <name>RouterEB</name>
+ <toolchain>
+ <name>8051</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>C-SPY</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>7</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>GoToEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GoToName</name>
+ <state>main</state>
+ </option>
+ <option>
+ <name>MemOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>d24BitData</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger code model</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Sim extended stack</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger DPTR Settings</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger Code Banking</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DebuggerMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DynDriver</name>
+ <state>CHIPCON_ID</state>
+ </option>
+ <option>
+ <name>Debugger Extra Options Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Debugger Extra Options Edit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Debugger data model</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck1</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck3</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath3</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DdfFile slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DdfFile master</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\ioCC2530.ddf</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>_3RD_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>Third-Party Driver Mandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Third-Party Driver File Name Edit</name>
+ <state>ThirdPartyDriver.dll</state>
+ </option>
+ <option>
+ <name>Third-Party Driver LogFile Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Third-Party Driver LogFile Edit</name>
+ <state>cspycomm.log</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CHIPCON_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>3</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>ChipconDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconEraseFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainMemory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconVerifyDownload</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconVerifyRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconReduceSpeed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconStackOverflow</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconNoBanks</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>ChipconLogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLogComFile</name>
+ <state>communication.log</state>
+ </option>
+ <option>
+ <name>ChipconFlashLock</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconFlashLockInfo</name>
+ <state><page size info. missing></state>
+ </option>
+ <option>
+ <name>ChipconBootLock</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconDebugLock</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLockFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLockLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainPagesCtrl</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainPages</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ChipconFlashPages</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ChipconFlashRadio</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>FS2_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>Fs2DriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Configuration</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Has program RAM</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Program RAM areas</name>
+ <state>0x8000-0x87FF,0xC000-0xC7FF</state>
+ </option>
+ <option>
+ <name>Has program Flash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Program Flash cfg entry</name>
+ <state>nRF24LU1</state>
+ </option>
+ <option>
+ <name>Program Flash areas</name>
+ <state>0x0000-0x7FFF</state>
+ </option>
+ <option>
+ <name>FS2SuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FS2VerifyDownload</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>INFINEON_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>InfineonDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>InfineonEraseFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfServerAddr</name>
+ <state>localhost</state>
+ </option>
+ <option>
+ <name>InfServerName</name>
+ <state>JTAG over USB Box</state>
+ </option>
+ <option>
+ <name>InfKey1</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey3</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey4</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfConnection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonSwBp</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>NS_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>NsDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NSSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NSVerifyDownload</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ROM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>2</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>RomDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>SuppressLoad</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>VerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AllComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>6</state>
+ </option>
+ <option>
+ <name>Parity</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>DataBits</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>StopBits</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Handshake</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>cspycomm.log</state>
+ </option>
+ <option>
+ <name>ToggleDTR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ToggleRTS</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AD2_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>6</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CygnalDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CygnVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>6</state>
+ </option>
+ <option>
+ <name>CygnComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ADuC8xx</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ADuCpuClockFrequency</name>
+ <state>12582912</state>
+ </option>
+ <option>
+ <name>OverrideCpuClkFreq</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AD2EraseDataFlash</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debug Interface</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CYGNAL_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CygnalDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CygnSuppressLoad</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CygnVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CygnProtocol</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CygnComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>drv_silabs_page_size</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsUsb</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsPowerTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsMulDevices</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsDevBefore</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsDevAfter</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsRegBefore</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsRegAfter</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>_SENSIUM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>TI Sensium Driver Mandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver File Name Edit</name>
+ <state>tiSensiumDbg.dll</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver LogFile Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver LogFile Edit</name>
+ <state>cspycomm.log</state>
+ </option>
+ <option>
+ <name>SensiumSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumES2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumProgramEPROM</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>SIM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>SimDriverMandatory</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <debuggerPlugins>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ </debuggerPlugins>
+ </configuration>
+ <configuration>
+ <name>EndDeviceEB</name>
+ <toolchain>
+ <name>8051</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>C-SPY</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>7</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>GoToEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GoToName</name>
+ <state>main</state>
+ </option>
+ <option>
+ <name>MemOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>d24BitData</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger code model</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Sim extended stack</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger DPTR Settings</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debugger Code Banking</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DebuggerMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DynDriver</name>
+ <state>CHIPCON_ID</state>
+ </option>
+ <option>
+ <name>Debugger Extra Options Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Debugger Extra Options Edit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Debugger data model</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck1</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck3</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath3</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DdfFile slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DdfFile master</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\ioCC2530.ddf</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>_3RD_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>Third-Party Driver Mandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Third-Party Driver File Name Edit</name>
+ <state>ThirdPartyDriver.dll</state>
+ </option>
+ <option>
+ <name>Third-Party Driver LogFile Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Third-Party Driver LogFile Edit</name>
+ <state>cspycomm.log</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CHIPCON_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>3</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>ChipconDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconEraseFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainMemory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconVerifyDownload</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconVerifyRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconReduceSpeed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconStackOverflow</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ChipconNoBanks</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>ChipconLogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLogComFile</name>
+ <state>communication.log</state>
+ </option>
+ <option>
+ <name>ChipconFlashLock</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconFlashLockInfo</name>
+ <state><page size info. missing></state>
+ </option>
+ <option>
+ <name>ChipconBootLock</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconDebugLock</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLockFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconLockLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainPagesCtrl</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ChipconRetainPages</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ChipconFlashPages</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ChipconFlashRadio</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>FS2_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>Fs2DriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Configuration</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Has program RAM</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Program RAM areas</name>
+ <state>0x8000-0x87FF,0xC000-0xC7FF</state>
+ </option>
+ <option>
+ <name>Has program Flash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Program Flash cfg entry</name>
+ <state>nRF24LU1</state>
+ </option>
+ <option>
+ <name>Program Flash areas</name>
+ <state>0x0000-0x7FFF</state>
+ </option>
+ <option>
+ <name>FS2SuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FS2VerifyDownload</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>INFINEON_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>InfineonDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>InfineonEraseFlash</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfServerAddr</name>
+ <state>localhost</state>
+ </option>
+ <option>
+ <name>InfServerName</name>
+ <state>JTAG over USB Box</state>
+ </option>
+ <option>
+ <name>InfKey1</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey3</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfKey4</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfConnection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>InfineonSwBp</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>NS_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>NsDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NSSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NSVerifyDownload</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ROM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>2</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>RomDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>SuppressLoad</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>VerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AllComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>6</state>
+ </option>
+ <option>
+ <name>Parity</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>DataBits</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>StopBits</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Handshake</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>cspycomm.log</state>
+ </option>
+ <option>
+ <name>ToggleDTR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ToggleRTS</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AD2_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>6</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CygnalDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CygnVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>6</state>
+ </option>
+ <option>
+ <name>CygnComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ADuC8xx</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ADuCpuClockFrequency</name>
+ <state>12582912</state>
+ </option>
+ <option>
+ <name>OverrideCpuClkFreq</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AD2EraseDataFlash</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Debug Interface</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CYGNAL_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CygnalDriverMandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CygnSuppressLoad</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CygnVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CygnProtocol</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Port</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Baud</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CygnComm</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>drv_silabs_page_size</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsUsb</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsPowerTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsMulDevices</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsDevBefore</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsDevAfter</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsRegBefore</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SilabsRegAfter</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>_SENSIUM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>TI Sensium Driver Mandatory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver File Name Edit</name>
+ <state>tiSensiumDbg.dll</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver LogFile Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>TI Sensium Driver LogFile Edit</name>
+ <state>cspycomm.log</state>
+ </option>
+ <option>
+ <name>SensiumSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumVerifyDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumES2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SensiumProgramEPROM</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>SIM_ID</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>SimDriverMandatory</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <debuggerPlugins>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ </debuggerPlugins>
+ </configuration>
+</project>
+
+
Added: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.ewp
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.ewp (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.ewp Thu Apr 24 16:09:16 2014
@@ -1,0 +1,3756 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<project>
+ <fileVersion>2</fileVersion>
+ <configuration>
+ <name>CoordinatorEB</name>
+ <toolchain>
+ <name>8051</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>4</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>DerivativeDescriptionFile</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\CC2530F256.i51</state>
+ </option>
+ <option>
+ <name>Previous Derivative File</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\CC2530F256.i51</state>
+ </option>
+ <option>
+ <name>Showed Derivative</name>
+ <state>CC2530F256</state>
+ </option>
+ <option>
+ <name>CPU Core</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CPU Core Slave</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Code Memory Model</name>
+ <version>1</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Code Memory Model slave</name>
+ <version>1</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Data Memory Model</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Data Memory Model slave</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Use extended stack</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Use extended stack slave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Start of extended stack</name>
+ <state>0x002000</state>
+ </option>
+ <option>
+ <name>Calling convention</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>Workseg Size</name>
+ <version>0</version>
+ <state>8</state>
+ </option>
+ <option>
+ <name>Constant Placement</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Datapointer Size</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Nr of Datapointers</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Switch Method</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Mask Value</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>DPS Address</name>
+ <state>0x92</state>
+ </option>
+ <option>
+ <name>Sfr Visibility</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DPTR Addresses</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CodeBankReg</name>
+ <state>0x9F</state>
+ </option>
+ <option>
+ <name>CodeBankStart</name>
+ <state>0x8000</state>
+ </option>
+ <option>
+ <name>CodeBankSize</name>
+ <state>0xFFFF</state>
+ </option>
+ <option>
+ <name>ExePath</name>
+ <state>CoordinatorEB\Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>CoordinatorEB\Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>CoordinatorEB\List</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the legacy C runtime library.</state>
+ </option>
+ <option>
+ <name>RTConfigPath</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RTLibraryPath</name>
+ <state>$TOOLKIT_DIR$\LIB\CLIB\cl-pli-blxd-1e16x01.r51</state>
+ </option>
+ <option>
+ <name>Input variant</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>No float.</state>
+ </option>
+ <option>
+ <name>Output variant</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>No float, no field width, no precision.</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>General Idata Stack Size</name>
+ <state>0xC0</state>
+ </option>
+ <option>
+ <name>General Pdata Stack Size</name>
+ <state>0x80</state>
+ </option>
+ <option>
+ <name>General Xdata Stack Size</name>
+ <state>0x300</state>
+ </option>
+ <option>
+ <name>General Ext Stack Size</name>
+ <state>0x3FF</state>
+ </option>
+ <option>
+ <name>General Xdata Heap Size</name>
+ <state>0x00</state>
+ </option>
+ <option>
+ <name>General Far Heap Size</name>
+ <state>0x000</state>
+ </option>
+ <option>
+ <name>General Huge Heap Size</name>
+ <state>0x000</state>
+ </option>
+ <option>
+ <name>CodeBankNrOfs</name>
+ <state>0x07</state>
+ </option>
+ <option>
+ <name>CodeBankRegMask</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>PDATA 8-15 register address</name>
+ <state>0x93</state>
+ </option>
+ <option>
+ <name>PDATA 16-31 register address</name>
+ <state></state>
+ </option>
+ <option>
+ <name>General Far22 Heap Size</name>
+ <state>0xFFF</state>
+ </option>
+ <option>
+ <name>GeneralMisraVer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICC8051</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>7</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCOptSizeSpeedSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptimizationSlave</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.r51</state>
+ </option>
+ <option>
+ <name>CCDefines</name>
+ <state>ZTOOL_P1</state>
+ <state>MT_TASK</state>
+ <state>MT_SYS_FUNC</state>
+ <state>MT_ZDO_FUNC</state>
+ <state>xLCD_SUPPORTED=DEBUG</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state>Pe001,Pa010</state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>LangConform</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CharIs</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMigrationPreprocExtentions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>11101</state>
+ </option>
+ <option>
+ <name>CCObjUseModuleName</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCObjModuleName</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCProcessorVariant</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCDptr</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCDataMemoryModel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCCodeMemoryModel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCCallingConvention</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCConstantPlacement</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Extended stack</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RomMonBpPadding</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCLangSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoUBROFMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Compiler Extra Options Check</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Compiler Extra Options Edit</name>
+ <state>-f $PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wCoord.cfg</state>
+ <state>-f $PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wConfig.cfg</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530</state>
+ <state>$PROJ_DIR$\..\Source</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Projects\zstack\ZMain\TI2530DB</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\target\OPEN2530</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\high_level</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mt</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\osal\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\osal\mcu\ccsoc</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\services\saddr</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\services\sdata</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\af</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sapi</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sec</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sys</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\zmac</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\zmac\f8w</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCStdIncludePath</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ <state>$TOOLKIT_DIR$\INC\CLIB\</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CCOverrideModuleTypeDefault</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRadioModuleType</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRadioModuleTypeSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>A8051</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>4</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OAProcessorVariant</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Generated Preproc defines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.r51</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Asm multibyte support</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Debug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoStruct</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AIncludes</name>
+ <state>$TOOLKIT_DIR$\inc\</state>
+ <state>$TOOLKIT_DIR$\src\lib</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Assembler Extra Options Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Assembler Extra Options Edit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AMaxErrOn</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AMaxErrNum</name>
+ <state>100</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>XLINK</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>17</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>XInfineonPFlashCacheBug</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XOutOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>SensorNode.d51</state>
+ </option>
+ <option>
+ <name>OutputFormat</name>
+ <version>11</version>
+ <state>23</state>
+ </option>
+ <option>
+ <name>FormatVariant</name>
+ <version>8</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>SecondaryOutputFile</name>
+ <state>(None for the selected format)</state>
+ </option>
+ <option>
+ <name>XDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AlwaysOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OverlapWarnings</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoGlobalCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XList</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>SegmentMap</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ListSymbols</name>
+ <state>2</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>XIncludes</name>
+ <state>$TOOLKIT_DIR$\LIB\</state>
+ </option>
+ <option>
+ <name>ModuleStatus</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XclOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XclFile</name>
+ <state>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8w2530.xcl</state>
+ </option>
+ <option>
+ <name>XclFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Config Include Dir</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLink Dptr Switch mask</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OHXNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OHX DPS Address</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLINK Dptr Addresses</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Code Banking</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OXLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlgo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RangeCheckAlternatives</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SuppressAllWarn</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SuppressDiags</name>
+ <state>e24</state>
+ </option>
+ <option>
+ <name>TreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>TreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ModuleLocalSym</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IncludeSuppressed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ModuleSummary</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>xcProgramEntryLabel</name>
+ <state>__program_start</state>
+ </option>
+ <option>
+ <name>DebugInformation</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RuntimeControl</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IoEmulation</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AllowExtraOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GenerateExtraOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XExtraOutOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ExtraOutputFile</name>
+ <state>SensorNode.hex</state>
+ </option>
+ <option>
+ <name>ExtraOutputFormat</name>
+ <version>11</version>
+ <state>23</state>
+ </option>
+ <option>
+ <name>ExtraFormatVariant</name>
+ <version>8</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>xcOverrideProgramEntryLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>xcProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ListOutputFormat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>BufferedTermOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OverlaySystemMap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XcRTLibraryFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Idata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Ext Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Pdata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Xdata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Xdata Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Far Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Huge Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Extra Options Check</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Extra Options Edit</name>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib</state>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TI2530DB\bin\Security.lib</state>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TIMAC\bin\TIMAC-CC2530.lib</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>Linker Far22 Heap Size</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>XAR</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>XARInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>XAROverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XAR Standard name</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XAROutput</name>
+ <state>###Uninitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ </configuration>
+ <configuration>
+ <name>RouterEB</name>
+ <toolchain>
+ <name>8051</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>4</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>DerivativeDescriptionFile</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\CC2530F256.i51</state>
+ </option>
+ <option>
+ <name>Previous Derivative File</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\CC2530F256.i51</state>
+ </option>
+ <option>
+ <name>Showed Derivative</name>
+ <state>CC2530F256</state>
+ </option>
+ <option>
+ <name>CPU Core</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CPU Core Slave</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Code Memory Model</name>
+ <version>1</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Code Memory Model slave</name>
+ <version>1</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Data Memory Model</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Data Memory Model slave</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Use extended stack</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Use extended stack slave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Start of extended stack</name>
+ <state>0x002000</state>
+ </option>
+ <option>
+ <name>Calling convention</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>Workseg Size</name>
+ <version>0</version>
+ <state>8</state>
+ </option>
+ <option>
+ <name>Constant Placement</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Datapointer Size</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Nr of Datapointers</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Switch Method</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Mask Value</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>DPS Address</name>
+ <state>0x92</state>
+ </option>
+ <option>
+ <name>Sfr Visibility</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DPTR Addresses</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CodeBankReg</name>
+ <state>0x9F</state>
+ </option>
+ <option>
+ <name>CodeBankStart</name>
+ <state>0x8000</state>
+ </option>
+ <option>
+ <name>CodeBankSize</name>
+ <state>0xFFFF</state>
+ </option>
+ <option>
+ <name>ExePath</name>
+ <state>RouterEB\Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>RouterEB\Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>RouterEB\List</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the legacy C runtime library.</state>
+ </option>
+ <option>
+ <name>RTConfigPath</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RTLibraryPath</name>
+ <state>$TOOLKIT_DIR$\LIB\CLIB\cl-pli-blxd-1e16x01.r51</state>
+ </option>
+ <option>
+ <name>Input variant</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>No float.</state>
+ </option>
+ <option>
+ <name>Output variant</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>No float, no field width, no precision.</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>General Idata Stack Size</name>
+ <state>0xC0</state>
+ </option>
+ <option>
+ <name>General Pdata Stack Size</name>
+ <state>0x80</state>
+ </option>
+ <option>
+ <name>General Xdata Stack Size</name>
+ <state>0x300</state>
+ </option>
+ <option>
+ <name>General Ext Stack Size</name>
+ <state>0x3FF</state>
+ </option>
+ <option>
+ <name>General Xdata Heap Size</name>
+ <state>0x00</state>
+ </option>
+ <option>
+ <name>General Far Heap Size</name>
+ <state>0x000</state>
+ </option>
+ <option>
+ <name>General Huge Heap Size</name>
+ <state>0x000</state>
+ </option>
+ <option>
+ <name>CodeBankNrOfs</name>
+ <state>0x07</state>
+ </option>
+ <option>
+ <name>CodeBankRegMask</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>PDATA 8-15 register address</name>
+ <state>0x93</state>
+ </option>
+ <option>
+ <name>PDATA 16-31 register address</name>
+ <state></state>
+ </option>
+ <option>
+ <name>General Far22 Heap Size</name>
+ <state>0xFFF</state>
+ </option>
+ <option>
+ <name>GeneralMisraVer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICC8051</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>7</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCOptSizeSpeedSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptimizationSlave</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.r51</state>
+ </option>
+ <option>
+ <name>CCDefines</name>
+ <state>ZTOOL_P1</state>
+ <state>MT_TASK</state>
+ <state>MT_SYS_FUNC</state>
+ <state>MT_ZDO_FUNC</state>
+ <state>xLCD_SUPPORTED=DEBUG</state>
+ <state>REFLECTOR</state>
+ <state>xFC04</state>
+ <state>POWER</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state>Pe001,Pa010</state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>LangConform</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CharIs</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMigrationPreprocExtentions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>00000</state>
+ </option>
+ <option>
+ <name>CCObjUseModuleName</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCObjModuleName</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCProcessorVariant</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCDptr</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCDataMemoryModel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCCodeMemoryModel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCCallingConvention</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCConstantPlacement</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Extended stack</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RomMonBpPadding</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCLangSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoUBROFMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Compiler Extra Options Check</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Compiler Extra Options Edit</name>
+ <state>-f $PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wRouter.cfg</state>
+ <state>-f $PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wConfig.cfg</state>
+ <state>-f $PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wZCL.cfg</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530</state>
+ <state>$PROJ_DIR$\..\Source</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Projects\zstack\ZMain\TI2530DB</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Projects\zstack\HomeAutomation\Source</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\target\OPEN2530</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\high_level</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mt</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\osal\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\osal\mcu\ccsoc</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\services\saddr</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\services\sdata</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\af</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sapi</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sec</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sys</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\zcl</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\zmac</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\zmac\f8w</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCStdIncludePath</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ <state>$TOOLKIT_DIR$\INC\CLIB\</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CCOverrideModuleTypeDefault</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRadioModuleType</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRadioModuleTypeSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>A8051</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>4</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OAProcessorVariant</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Generated Preproc defines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.r51</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Asm multibyte support</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Debug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoStruct</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AIncludes</name>
+ <state>$TOOLKIT_DIR$\inc\</state>
+ <state>$TOOLKIT_DIR$\src\lib</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Assembler Extra Options Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Assembler Extra Options Edit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AMaxErrOn</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AMaxErrNum</name>
+ <state>100</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>XLINK</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>17</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>XInfineonPFlashCacheBug</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XOutOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>SensorNode.d51</state>
+ </option>
+ <option>
+ <name>OutputFormat</name>
+ <version>11</version>
+ <state>23</state>
+ </option>
+ <option>
+ <name>FormatVariant</name>
+ <version>8</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>SecondaryOutputFile</name>
+ <state>(None for the selected format)</state>
+ </option>
+ <option>
+ <name>XDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AlwaysOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OverlapWarnings</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoGlobalCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XList</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>SegmentMap</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ListSymbols</name>
+ <state>2</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>XIncludes</name>
+ <state>$TOOLKIT_DIR$\LIB\</state>
+ </option>
+ <option>
+ <name>ModuleStatus</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XclOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XclFile</name>
+ <state>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8w2530.xcl</state>
+ </option>
+ <option>
+ <name>XclFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Config Include Dir</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLink Dptr Switch mask</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OHXNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OHX DPS Address</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLINK Dptr Addresses</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Code Banking</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OXLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlgo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RangeCheckAlternatives</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SuppressAllWarn</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SuppressDiags</name>
+ <state>e24</state>
+ </option>
+ <option>
+ <name>TreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>TreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ModuleLocalSym</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IncludeSuppressed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ModuleSummary</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>xcProgramEntryLabel</name>
+ <state>__program_start</state>
+ </option>
+ <option>
+ <name>DebugInformation</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RuntimeControl</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IoEmulation</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AllowExtraOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GenerateExtraOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XExtraOutOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ExtraOutputFile</name>
+ <state>SensorNode.hex</state>
+ </option>
+ <option>
+ <name>ExtraOutputFormat</name>
+ <version>11</version>
+ <state>23</state>
+ </option>
+ <option>
+ <name>ExtraFormatVariant</name>
+ <version>8</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>xcOverrideProgramEntryLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>xcProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ListOutputFormat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>BufferedTermOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OverlaySystemMap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XcRTLibraryFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Idata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Ext Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Pdata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Xdata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Xdata Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Far Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Huge Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Extra Options Check</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Extra Options Edit</name>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TI2530DB\bin\Router-Pro.lib</state>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TI2530DB\bin\Security.lib</state>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TIMAC\bin\TIMAC-CC2530.lib</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>Linker Far22 Heap Size</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>XAR</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>XARInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>XAROverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XAR Standard name</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XAROutput</name>
+ <state>###Uninitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ </configuration>
+ <configuration>
+ <name>EndDeviceEB</name>
+ <toolchain>
+ <name>8051</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>4</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>DerivativeDescriptionFile</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\CC2530F256.i51</state>
+ </option>
+ <option>
+ <name>Previous Derivative File</name>
+ <state>$TOOLKIT_DIR$\config\devices\Texas Instruments\CC2530F256.i51</state>
+ </option>
+ <option>
+ <name>Showed Derivative</name>
+ <state>CC2530F256</state>
+ </option>
+ <option>
+ <name>CPU Core</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CPU Core Slave</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Code Memory Model</name>
+ <version>1</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Code Memory Model slave</name>
+ <version>1</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Data Memory Model</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Data Memory Model slave</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Use extended stack</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Use extended stack slave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Start of extended stack</name>
+ <state>0x002000</state>
+ </option>
+ <option>
+ <name>Calling convention</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>Workseg Size</name>
+ <version>0</version>
+ <state>8</state>
+ </option>
+ <option>
+ <name>Constant Placement</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Datapointer Size</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Nr of Datapointers</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Switch Method</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Mask Value</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>DPS Address</name>
+ <state>0x92</state>
+ </option>
+ <option>
+ <name>Sfr Visibility</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DPTR Addresses</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CodeBankReg</name>
+ <state>0x9F</state>
+ </option>
+ <option>
+ <name>CodeBankStart</name>
+ <state>0x8000</state>
+ </option>
+ <option>
+ <name>CodeBankSize</name>
+ <state>0xFFFF</state>
+ </option>
+ <option>
+ <name>ExePath</name>
+ <state>EndDeviceEB\Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>EndDeviceEB\Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>EndDeviceEB\List</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the legacy C runtime library.</state>
+ </option>
+ <option>
+ <name>RTConfigPath</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RTLibraryPath</name>
+ <state>$TOOLKIT_DIR$\LIB\CLIB\cl-pli-blxd-1e16x01.r51</state>
+ </option>
+ <option>
+ <name>Input variant</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>No float.</state>
+ </option>
+ <option>
+ <name>Output variant</name>
+ <version>0</version>
+ <state>3</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>No float, no field width, no precision.</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>General Idata Stack Size</name>
+ <state>0xC0</state>
+ </option>
+ <option>
+ <name>General Pdata Stack Size</name>
+ <state>0x80</state>
+ </option>
+ <option>
+ <name>General Xdata Stack Size</name>
+ <state>0x300</state>
+ </option>
+ <option>
+ <name>General Ext Stack Size</name>
+ <state>0x3FF</state>
+ </option>
+ <option>
+ <name>General Xdata Heap Size</name>
+ <state>0x00</state>
+ </option>
+ <option>
+ <name>General Far Heap Size</name>
+ <state>0x000</state>
+ </option>
+ <option>
+ <name>General Huge Heap Size</name>
+ <state>0x000</state>
+ </option>
+ <option>
+ <name>CodeBankNrOfs</name>
+ <state>0x07</state>
+ </option>
+ <option>
+ <name>CodeBankRegMask</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>PDATA 8-15 register address</name>
+ <state>0x93</state>
+ </option>
+ <option>
+ <name>PDATA 16-31 register address</name>
+ <state></state>
+ </option>
+ <option>
+ <name>General Far22 Heap Size</name>
+ <state>0xFFF</state>
+ </option>
+ <option>
+ <name>GeneralMisraVer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICC8051</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>7</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCOptSizeSpeedSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptimizationSlave</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.r51</state>
+ </option>
+ <option>
+ <name>CCDefines</name>
+ <state>xNWK_AUTO_POLL</state>
+ <state>ZTOOL_P1</state>
+ <state>MT_TASK</state>
+ <state>MT_SYS_FUNC</state>
+ <state>MT_ZDO_FUNC</state>
+ <state>xLCD_SUPPORTED=DEBUG</state>
+ <state>xPOWER_SAVING</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state>Pe001,Pa010</state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>LangConform</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CharIs</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMigrationPreprocExtentions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>11101</state>
+ </option>
+ <option>
+ <name>CCObjUseModuleName</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCObjModuleName</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCProcessorVariant</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCDptr</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCDataMemoryModel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCCodeMemoryModel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCCallingConvention</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCConstantPlacement</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCCNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Extended stack</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RomMonBpPadding</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCLangSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoUBROFMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Compiler Extra Options Check</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Compiler Extra Options Edit</name>
+ <state>-f $PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wEndev.cfg</state>
+ <state>-f $PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wConfig.cfg</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530</state>
+ <state>$PROJ_DIR$\..\Source</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Projects\zstack\ZMain\TI2530DB</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\hal\target\OPEN2530</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\high_level</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\mt</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\osal\include</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\osal\mcu\ccsoc</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\services\saddr</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\services\sdata</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\af</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sapi</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sec</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\sys</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\zmac</state>
+ <state>$PROJ_DIR$\..\..\ZStack\Components\zmac\f8w</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCStdIncludePath</name>
+ <state>$TOOLKIT_DIR$\INC\</state>
+ <state>$TOOLKIT_DIR$\INC\CLIB\</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CCOverrideModuleTypeDefault</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRadioModuleType</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRadioModuleTypeSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>A8051</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>4</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OAProcessorVariant</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Generated Preproc defines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.r51</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Asm multibyte support</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Debug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoStruct</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AIncludes</name>
+ <state>$TOOLKIT_DIR$\inc\</state>
+ <state>$TOOLKIT_DIR$\src\lib</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Assembler Extra Options Check</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Assembler Extra Options Edit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AMaxErrOn</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AMaxErrNum</name>
+ <state>100</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>XLINK</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>17</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>XInfineonPFlashCacheBug</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XOutOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>SensorNode.d51</state>
+ </option>
+ <option>
+ <name>OutputFormat</name>
+ <version>11</version>
+ <state>23</state>
+ </option>
+ <option>
+ <name>FormatVariant</name>
+ <version>8</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>SecondaryOutputFile</name>
+ <state>(None for the selected format)</state>
+ </option>
+ <option>
+ <name>XDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AlwaysOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OverlapWarnings</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NoGlobalCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XList</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>SegmentMap</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ListSymbols</name>
+ <state>2</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>XIncludes</name>
+ <state>$TOOLKIT_DIR$\LIB\</state>
+ </option>
+ <option>
+ <name>ModuleStatus</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XclOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XclFile</name>
+ <state>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8w2530.xcl</state>
+ </option>
+ <option>
+ <name>XclFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>Config Include Dir</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLink Dptr Switch mask</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OHXNrOfVirtualRegisters</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OHX DPS Address</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLINK Dptr Addresses</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Code Banking</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OXLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlgo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RangeCheckAlternatives</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SuppressAllWarn</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>SuppressDiags</name>
+ <state>e24</state>
+ </option>
+ <option>
+ <name>TreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>TreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ModuleLocalSym</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IncludeSuppressed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ModuleSummary</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>xcProgramEntryLabel</name>
+ <state>__program_start</state>
+ </option>
+ <option>
+ <name>DebugInformation</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RuntimeControl</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IoEmulation</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AllowExtraOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GenerateExtraOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XExtraOutOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ExtraOutputFile</name>
+ <state>SensorNode.hex</state>
+ </option>
+ <option>
+ <name>ExtraOutputFormat</name>
+ <version>11</version>
+ <state>23</state>
+ </option>
+ <option>
+ <name>ExtraFormatVariant</name>
+ <version>8</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>xcOverrideProgramEntryLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>xcProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ListOutputFormat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>BufferedTermOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OverlaySystemMap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>RawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XcRTLibraryFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Idata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Ext Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Pdata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Xdata Stack Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Xdata Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Far Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Huge Heap Size</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Extra Options Check</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Linker Extra Options Edit</name>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TI2530DB\bin\EndDevice-Pro.lib</state>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TI2530DB\bin\Security.lib</state>
+ <state>-C $PROJ_DIR$\..\..\ZStack\Projects\zstack\Libraries\TIMAC\bin\TIMAC-CC2530.lib</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>Linker Far22 Heap Size</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>XAR</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>XARInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>XAROverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XAR Standard name</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>XAROutput</name>
+ <state>###Uninitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data/>
+ </settings>
+ </configuration>
+ <group>
+ <name>App</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530\fc04.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Source\OSAL_SensorNode.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530\power.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Source\SensorNode.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Source\SensorNode.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Source\SensorNode_data.c</name>
+ </file>
+ </group>
+ <group>
+ <name>HAL</name>
+ <group>
+ <name>Common</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\common\hal_assert.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\common\hal_drivers.c</name>
+ </file>
+ </group>
+ <group>
+ <name>Include</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_adc.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_assert.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_board.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_ccm.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_defs.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_drivers.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_flash.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_key.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_lcd.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_led.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_sleep.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_timer.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\include\hal_uart.h</name>
+ </file>
+ </group>
+ <group>
+ <name>Target</name>
+ <group>
+ <name>CC2530EB</name>
+ <group>
+ <name>Config</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_board_cfg.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530\hal_outboard_cfg.h</name>
+ </file>
+ </group>
+ <group>
+ <name>Drivers</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_adc_OPEN.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_dma.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_flash.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_key_OPEN.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_lcd.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_led.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_sleep.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_startup.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\OPEN2530\hal_timer_OPEN.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_uart.c</name>
+ </file>
+ </group>
+ <group>
+ <name>Includes</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_aes.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_dma.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_mcu.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\hal\target\CC2530EB\hal_types.h</name>
+ </file>
+ </group>
+ </group>
+ </group>
+ </group>
+ <group>
+ <name>MAC</name>
+ <group>
+ <name>High Level</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\high_level\mac_cfg.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\high_level\mac_high_level.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\high_level\mac_pib.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\high_level\mac_pib.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\high_level\mac_spec.h</name>
+ </file>
+ </group>
+ <group>
+ <name>Include</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\include\mac_api.h</name>
+ </file>
+ </group>
+ <group>
+ <name>Low Level</name>
+ <group>
+ <name>Common</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_assert.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_autopend.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_autopend.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_backoff_timer.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_backoff_timer.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_low_level.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_low_level.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_radio.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_radio.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_rx.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_rx.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_rx_onoff.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_rx_onoff.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_sleep.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_sleep.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_tx.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\mac_tx.h</name>
+ </file>
+ </group>
+ <group>
+ <name>System</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_csp_tx.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_csp_tx.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_mcu.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_mcu.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_mem.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_mem.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_radio_defs.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_radio_defs.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mac\low_level\srf04\single_chip\mac_rffrontend.c</name>
+ </file>
+ </group>
+ </group>
+ </group>
+ <group>
+ <name>MT</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\DebugTrace.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\DebugTrace.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_AF.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_AF.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_APP.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_APP.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_DEBUG.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_DEBUG.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_NWK.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_NWK.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_RPC.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_SAPI.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_SAPI.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_SYS.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_SYS.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_TASK.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_TASK.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_UART.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\mt_uart.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_UTIL.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_UTIL.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_VERSION.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_VERSION.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_ZDO.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\mt\MT_ZDO.h</name>
+ </file>
+ </group>
+ <group>
+ <name>NWK</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\AddrMgr.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\APS.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\aps_frag.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\aps_groups.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\aps_util.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\APSMEDE.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\AssocList.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\BindingTable.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\NLMEDE.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\nwk.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\nwk_bufs.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\nwk_globals.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\nwk_globals.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\nwk_util.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\reflecttrack.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\rtg.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\stub_aps.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\nwk\stub_aps.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\sys\ZGlobals.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\sys\ZGlobals.h</name>
+ </file>
+ </group>
+ <group>
+ <name>OSAL</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\comdef.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\common\OSAL.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\OSAL.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\common\OSAL_Clock.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\OSAL_Clock.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\mcu\cc2530\OSAL_Math.s51</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\common\OSAL_Memory.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\OSAL_Memory.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\mcu\cc2530\OSAL_Nv.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\OSAL_Nv.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\common\OSAL_PwrMgr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\OSAL_PwrMgr.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\OSAL_Tasks.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\common\OSAL_Timers.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\OSAL_Timers.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\osal\include\ZComDef.h</name>
+ </file>
+ </group>
+ <group>
+ <name>Profile</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\af\AF.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zcl\zcl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zcl\zcl.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zcl\zcl_general.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zcl\zcl_general.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\HomeAutomation\Source\zcl_ha.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\HomeAutomation\Source\zcl_ha.h</name>
+ </file>
+ </group>
+ <group>
+ <name>Security</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\sec\ssp.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\sec\ssp_hash.h</name>
+ </file>
+ </group>
+ <group>
+ <name>Services</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\services\saddr\saddr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\services\saddr\saddr.h</name>
+ </file>
+ </group>
+ <group>
+ <name>Tools</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8w2530.xcl</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wConfig.cfg</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wCoord.cfg</name>
+ <excluded>
+ <configuration>RouterEB</configuration>
+ <configuration>EndDeviceEB</configuration>
+ </excluded>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wEndev.cfg</name>
+ <excluded>
+ <configuration>CoordinatorEB</configuration>
+ <configuration>RouterEB</configuration>
+ </excluded>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wRouter.cfg</name>
+ <excluded>
+ <configuration>CoordinatorEB</configuration>
+ <configuration>EndDeviceEB</configuration>
+ </excluded>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\Tools\CC2530DB\f8wZCL.cfg</name>
+ </file>
+ </group>
+ <group>
+ <name>ZDO</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDApp.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDApp.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDConfig.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDConfig.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDNwkMgr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDNwkMgr.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDObject.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDObject.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDProfile.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDProfile.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDSecMgr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\stack\zdo\ZDSecMgr.h</name>
+ </file>
+ </group>
+ <group>
+ <name>ZMac</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\zmac\f8w\zmac.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\zmac\ZMAC.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\zmac\f8w\zmac_cb.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Components\zmac\f8w\zmac_internal.h</name>
+ </file>
+ </group>
+ <group>
+ <name>ZMain</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\ZMain\TI2530DB\chipcon_cstartup.s51</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\ZMain\TI2530DB\OnBoard.c</name>
+ <excluded>
+ <configuration>RouterEB</configuration>
+ </excluded>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\ZMain\TI2530DB\OnBoard.h</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Target_OPEN2530\OnNoBoard.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\ZStack\Projects\zstack\ZMain\TI2530DB\ZMain.c</name>
+ </file>
+ </group>
+</project>
+
+
Added: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.eww
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.eww (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/OPEN2530/SensorNode.eww Thu Apr 24 16:09:16 2014
@@ -1,0 +1,26 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<workspace>
+ <project>
+ <path>$WS_DIR$\SensorNode.ewp</path>
+ </project>
+ <batchBuild>
+ <batchDefinition>
+ <name>ALL</name>
+ <member>
+ <project>SensorNode</project>
+ <configuration>CoordinatorEB</configuration>
+ </member>
+ <member>
+ <project>SensorNode</project>
+ <configuration>RouterEB</configuration>
+ </member>
+ <member>
+ <project>SensorNode</project>
+ <configuration>EndDeviceEB</configuration>
+ </member>
+ </batchDefinition>
+ </batchBuild>
+</workspace>
+
+
Added: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/OSAL_SensorNode.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/OSAL_SensorNode.c (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/OSAL_SensorNode.c Thu Apr 24 16:09:16 2014
@@ -1,0 +1,153 @@
+/**************************************************************************************************
+ Filename: OSAL_SensorNode.c
+ Revised: $Date: 2008-02-07 12:10:00 -0800 (Thu, 07 Feb 2008) $
+ Revision: $Revision: 16360 $
+
+ Description: This file contains all the settings and other functions
+ that the user should set and change.
+
+
+ Copyright 2004-2007 Texas Instruments Incorporated. All rights reserved.
+
+ IMPORTANT: Your use of this Software is limited to those specific rights
+ granted under the terms of a software license agreement between the user
+ who downloaded the software, his/her employer (which must be your employer)
+ and Texas Instruments Incorporated (the "License"). You may not use this
+ Software unless you agree to abide by the terms of the License. The License
+ limits your use, and you acknowledge, that the Software may not be modified,
+ copied or distributed unless embedded on a Texas Instruments microcontroller
+ or used solely and exclusively in conjunction with a Texas Instruments radio
+ frequency transceiver, which is integrated into your product. Other than for
+ the foregoing purpose, you may not use, reproduce, copy, prepare derivative
+ works of, modify, distribute, perform, display or sell this Software and/or
+ its documentation for any purpose.
+
+ YOU FURTHER ACKNOWLEDGE AND AGREE THAT THE SOFTWARE AND DOCUMENTATION ARE
+ PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+ INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, TITLE,
+ NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL
+ TEXAS INSTRUMENTS OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER CONTRACT,
+ NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR OTHER
+ LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
+ INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE
+ OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT
+ OF SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
+ (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
+
+ Should you have any questions regarding your right to use this Software,
+ contact Texas Instruments Incorporated at www.TI.com.
+**************************************************************************************************/
+
+/*********************************************************************
+ * INCLUDES
+ */
+
+#include "ZComDef.h"
+#include "hal_drivers.h"
+#include "OSAL.h"
+#include "OSAL_Tasks.h"
+
+
+#if defined ( MT_TASK )
+ #include "MT.h"
+ #include "MT_TASK.h"
+#endif
+
+#include "nwk.h"
+#include "APS.h"
+#include "ZDApp.h"
+#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
+ #include "ZDNwkMgr.h"
+#endif
+#if defined ( ZIGBEE_FRAGMENTATION )
+ #include "aps_frag.h"
+#endif
+
+#include "SensorNode.h"
+
+#if defined ( FC04 )
+#include "fc04.h"
+#endif
+
+#if defined ( POWER )
+#include "power.h"
+#endif
+/*********************************************************************
+ * GLOBAL VARIABLES
+ */
+
+// The order in this table must be identical to the task initialization calls below in osalInitTask.
+const pTaskEventHandlerFn tasksArr[] = {
+ macEventLoop,
+ nwk_event_loop,
+ Hal_ProcessEvent,
+#if defined( MT_TASK )
+ MT_ProcessEvent,
+#endif
+ APS_event_loop,
+#if defined ( ZIGBEE_FRAGMENTATION )
+ APSF_ProcessEvent,
+#endif
+ ZDApp_event_loop,
+#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
+ ZDNwkMgr_event_loop,
+#endif
+ zcl_event_loop,
+#if defined ( FC04 )
+ FC04_loop,
+#endif
+#if defined ( POWER )
+ Power_EventLoop,
+#endif
+ SensorNode_event_loop
+};
+
+const uint8 tasksCnt = sizeof( tasksArr ) / sizeof( tasksArr[0] );
+uint16 *tasksEvents;
+
+/*********************************************************************
+ * FUNCTIONS
+ *********************************************************************/
+
+/*********************************************************************
+ * @fn osalInitTasks
+ *
+ * @brief This function invokes the initialization function for each task.
+ *
+ * @param void
+ *
+ * @return none
+ */
+void osalInitTasks( void )
+{
+ uint8 taskID = 0;
+
+ tasksEvents = (uint16 *)osal_mem_alloc( sizeof( uint16 ) * tasksCnt);
+ osal_memset( tasksEvents, 0, (sizeof( uint16 ) * tasksCnt));
+
+ macTaskInit( taskID++ );
+ nwk_init( taskID++ );
+ Hal_Init( taskID++ );
+#if defined( MT_TASK )
+ MT_TaskInit( taskID++ );
+#endif
+ APS_Init( taskID++ );
+#if defined ( ZIGBEE_FRAGMENTATION )
+ APSF_Init( taskID++ );
+#endif
+ ZDApp_Init( taskID++ );
+#if defined ( ZIGBEE_FREQ_AGILITY ) || defined ( ZIGBEE_PANID_CONFLICT )
+ ZDNwkMgr_Init( taskID++ );
+#endif
+ zcl_Init( taskID++ );
+#if defined ( FC04 )
+ FC04_Init( taskID++ );
+#endif
+#if defined ( POWER )
+ Power_Init( taskID++ );
+#endif
+ SensorNode_Init( taskID );
+}
+
+/*********************************************************************
+*********************************************************************/
Added: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode.c (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode.c Thu Apr 24 16:09:16 2014
@@ -1,0 +1,1284 @@
+/*******************************************************************************
+ Filename: SensorNode.c
+ Revised: $Date: 2009-03-18 15:56:27 -0700 (Wed, 18 Mar 2009) $
+ Revision: $Revision: 19453 $
+
+Three Endpoints:
+EP1: Power
+EP2: PIR
+EP3: NOISE
+
+*/
+
+/*********************************************************************
+ * INCLUDES
+ */
+#include "ZComDef.h"
+#include "OSAL.h"
+#include "AF.h"
+#include "ZDApp.h"
+
+#include "zcl.h"
+#include "zcl_general.h"
+#include "zcl_ha.h"
+
+#include "SensorNode.h"
+
+#include "OnBoard.h"
+
+/* HAL */
+//#include "hal_lcd.h"
+#include "hal_led.h"
+#include "hal_key.h"
+
+#if defined ( FC04 )
+#include "fc04.h"
+#include "stdio.h"
+#endif
+
+#if defined ( POWER )
+#include "power.h"
+#include "stdio.h"
+#endif
+
+#ifdef REFLECTOR
+#include "math.h"
+#endif
+
+/*********************************************************************
+ * MACROS
+ */
+
+#define zcl_MandatoryReportableAttribute( a ) ( a.attr.attrId == ATTRID_IOV_BASIC_PRESENT_VALUE )
+
+/*********************************************************************
+ * CONSTANTS
+ */
+
+#ifdef ZCL_REPORT
+#define ZCL_MIN_REPORTING_INTERVAL 1
+#endif
+
+/*********************************************************************
+ * TYPEDEFS
+ */
+
+/*********************************************************************
+ * GLOBAL VARIABLES
+ */
+
+/*********************************************************************
+ * EXTERNAL VARIABLES
+ */
+/*********************************************************************
+ * EXTERNAL FUNCTIONS
+ */
+
+/*********************************************************************
+ * LOCAL VARIABLES
+ */
+byte SensorNode_TaskID; // Task ID for internal task/event processing
+ // This variable will be received when
+ // SensorNode_Init() is called.
+
+// Test Endpoint to allow SYS_APP_MSGs
+static endPointDesc_t SensorNode_TestEp =
+{
+ 20, // Test endpoint
+ &SensorNode_TaskID,
+ (SimpleDescriptionFormat_t *)NULL, // No Simple description for this test endpoint
+ (afNetworkLatencyReq_t)0 // No Network Latency req
+};
+
+#ifdef ZCL_REPORT
+static afAddrType_t SensorNode_DstAddr; //ZCL_REPORT
+zclReportingStatus_t PresentValue_RepStatus[SENSORNODE_MAX_ENDPOINT];
+
+static uint16 AnalogInputReportTimeoutPeriod = 10000;
+static uint8 numAttrib = 1; // number of attributes in report for each EP
+
+static zclReportCmd_t *pAnalogInputReportCmd[SENSORNODE_MAX_ENDPOINT];
+
+//uint8 seqNumRep = 0; //global sequence number???
+#endif
+
+#ifdef POWER
+extern SingleSensingConf_t Voltage;
+extern SingleSensingConf_t Current[CHANNELS_NUMBER];
+#endif
+/*********************************************************************
+ * LOCAL FUNCTIONS
+ */
+void SensorNode_HandleKeys( byte keys );
+static void SensorNode_ProcessAttributeReporting( uint8 attribute );
+
+//General Cluster Callback functions
+static void SensorNode_BasicResetCB( void );
+static void SensorNode_IdentifyCB( zclIdentify_t *pCmd );
+static void SensorNode_IdentifyQueryRspCB( zclIdentifyQueryRsp_t *pRsp );
+
+#ifdef ZCL_REPORT
+//Send the Report
+static uint8 SensorNode_SendTheReport( uint8 index ); //TODO
+static uint16 SensorNode_GetMinEvent( uint8 EndPoint ); //TODO
+static uint16 SensorNode_GetMaxEvent( uint8 EndPoint ); //TODO
+
+// Report Settings
+static uint8 SensorNode_ProcessInConfigReportCmd( zclIncomingMsg_t *pInMsg );
+//Local functions for setting reporting
+static uint8 SensorNode_SetAttrTimeoutPeriod( zclAttribute_t *pAttr,
+ zclCfgReportRec_t *cfgReportRec );
+static uint8 SensorNode_SetAttrReportInterval( zclAttribute_t *pAttr,
+ zclCfgReportRec_t *cfgReportRec, byte EndPoint );
+static uint8 SensorNode_ProcessInReportCmd( zclIncomingMsg_t *pInMsg );
+#endif
+
+static void SensorNode_ProcessIdentifyTimeChange( void );
+
+static void SensorNode_ProcessIncomingMsg( zclIncomingMsg_t *msg );
+
+#ifdef ZCL_READ
+static uint8 SensorNode_ProcessInReadRspCmd( zclIncomingMsg_t *pInMsg );
+#endif
+
+#ifdef ZCL_WRITE
+static uint8 SensorNode_ProcessInWriteRspCmd( zclIncomingMsg_t *pInMsg );
+#endif
+
+static uint8 SensorNode_ProcessInDefaultRspCmd( zclIncomingMsg_t *pInMsg );
+
+#ifdef ZCL_DISCOVER
+static uint8 SensorNode_ProcessInDiscRspCmd( zclIncomingMsg_t *pInMsg );
+#endif
+
+#ifdef FC04
+static void FC04_ProcessIncomingMsg( fc04IncomingMsg_t *pInMsg );
+#endif
+
+#ifdef POWER
+static void Power_ProcessIncomingMsg( powerIncomingMsg_t *pInMsg );
+#endif
+
+/*********************************************************************
+ * ZCL General Profile Callback table
+ */
+static zclGeneral_AppCallbacks_t SensorNode_CmdCallbacks =
+{
+ SensorNode_BasicResetCB, // Basic Cluster Reset command
+ SensorNode_IdentifyCB, // Identify command
+ SensorNode_IdentifyQueryRspCB, // Identify Query Response command
+ NULL, // On/Off cluster command
+ NULL, // Level Control Move to Level command
+ NULL, // Level Control Move command
+ NULL, // Level Control Step command
+ NULL, // Group Response commands
+ NULL, // Scene Store Request command
+ NULL, // Scene Recall Request command
+ NULL, // Scene Response command
+ NULL, // Alarm (Response) command
+ NULL, // RSSI Location commands
+ NULL, // RSSI Location Response commands
+};
+
+
+/*********************************************************************
+ * @fn SensorNode_Init
+ *
+ * @brief Initialization function for the zclGeneral layer.
+ *
+ * @param none
+ *
+ * @return none
+ */
+void SensorNode_Init( byte task_id )
+{
+ SensorNode_TaskID = task_id;
+
+#ifdef ZCL_REPORT
+ // Find Destination Address in the Binding Table (Enable REFLECTOR)
+ SensorNode_DstAddr.addrMode = (afAddrMode_t)AddrNotPresent;
+#endif // ZCL_REPORT
+
+ // This app is part of the Home Automation Profile
+ zclHA_Init( &SensorNode_SimpleDesc1 );
+ zclHA_Init( &SensorNode_SimpleDesc2 );
+ zclHA_Init( &SensorNode_SimpleDesc3 );
+// zclHA_Init( &SensorNode_SimpleDesc4 );
+// zclHA_Init( &SensorNode_SimpleDesc5 );
+// zclHA_Init( &SensorNode_SimpleDesc6 );
+// zclHA_Init( &SensorNode_SimpleDesc7 );
+// zclHA_Init( &SensorNode_SimpleDesc8 );
+
+ // Register the ZCL General Cluster Library callback functions
+ zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT1, &SensorNode_CmdCallbacks );
+ zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT2, &SensorNode_CmdCallbacks );
+ zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT3, &SensorNode_CmdCallbacks );
+// zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT4, &SensorNode_CmdCallbacks );
+// zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT5, &SensorNode_CmdCallbacks );
+// zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT6, &SensorNode_CmdCallbacks );
+// zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT7, &SensorNode_CmdCallbacks );
+// zclGeneral_RegisterCmdCallbacks( SensorNode_ENDPOINT8, &SensorNode_CmdCallbacks );
+
+ // Register the application's attribute list
+ zcl_registerAttrList( SensorNode_ENDPOINT1, SENSORNODE_MAX_ATTRIBUTES, SensorNode_Attrs_EP1 );
+ zcl_registerAttrList( SensorNode_ENDPOINT2, SENSORNODE_MAX_ATTRIBUTES, SensorNode_Attrs_EP2 );
+ zcl_registerAttrList( SensorNode_ENDPOINT3, SENSORNODE_MAX_ATTRIBUTES, SensorNode_Attrs_EP3 );
+// zcl_registerAttrList( SensorNode_ENDPOINT4, SENSORNODE_MAX_ATTRIBUTES, SensorNode_Attrs_EP4 );
+// zcl_registerAttrList( SensorNode_ENDPOINT5, SENSORNODE_MAX_ATTRIBUTES, SensorNode_Attrs_EP5 );
+// zcl_registerAttrList( SensorNode_ENDPOINT6, SENSORNODE_MAX_ATTRIBUTES, SensorNode_Attrs_EP6 );
+// zcl_registerAttrList( SensorNode_ENDPOINT7, SENSORNODE_MAX_ATTRIBUTES, SensorNode_Attrs_EP7 );
+// zcl_registerAttrList( SensorNode_ENDPOINT8, SENSORNODE_MAX_ATTRIBUTES, SensorNode_Attrs_EP8 );
+
+ // Register the Application to receive the unprocessed Foundation command/response messages
+ zcl_registerForMsg( SensorNode_TaskID );
+
+ // Register for all key events - This app will handle all key events
+ RegisterForKeys( SensorNode_TaskID );
+
+ // Register for a test endpoint
+ afRegister( &SensorNode_TestEp );
+
+#ifdef ZCL_REPORT
+
+ for ( uint8 i=0; i < SENSORNODE_MAX_ENDPOINT; i++ )
+ {
+ SensorNode_EP_PresentValue[i] = 0.0;
+ PresentValue_RepStatus[i].value = &SensorNode_EP_PresentValue[i];
+ PresentValue_RepStatus[i].Reporting_enabled = NO_REPORTING; //TODO
+
+ pAnalogInputReportCmd[i] = (zclReportCmd_t *)osal_mem_alloc( sizeof( zclReportCmd_t ) + ( numAttrib * sizeof( zclReport_t ) ) );
+
+ if ( pAnalogInputReportCmd[i] != NULL )
+ {
+ pAnalogInputReportCmd[i]->numAttr = numAttrib;
+ // Set up the first attribute
+ pAnalogInputReportCmd[i]->attrList[0].attrID = ATTRID_IOV_BASIC_PRESENT_VALUE;
+ pAnalogInputReportCmd[i]->attrList[0].dataType = ZCL_DATATYPE_SINGLE_PREC;
+ pAnalogInputReportCmd[i]->attrList[0].attrData = PresentValue_RepStatus[i].value;
+ }
+ }
+
+#endif //ZCL_REPORT
+
+#ifdef FC04
+ Start_Capture ( SensorNode_TaskID );
+#endif //FC04
+#ifdef POWER
+ osal_start_timerEx( SensorNode_TaskID, CONF_THREE_STATE_EVT, CONF_THREE_STATE_TIMEOUT );
+#endif //POWER
+}
+
+/*********************************************************************
+ * @fn SensorNode_event_loop
+ *
+ * @brief Event Loop Processor for zclGeneral.
+ *
+ * @param none
+ *
+ * @return none
+ */
+uint16 SensorNode_event_loop( uint8 task_id, uint16 events )
+{
+ afIncomingMSGPacket_t *MSGpkt;
+
+ (void)task_id; // Intentionally unreferenced parameter
+
+ if ( events & SYS_EVENT_MSG )
+ {
+ while ( (MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SensorNode_TaskID )) )
+ {
+ switch ( MSGpkt->hdr.event )
+ {
+ case ZCL_INCOMING_MSG:
+ // Incoming ZCL Foundation command/response messages
+ SensorNode_ProcessIncomingMsg( (zclIncomingMsg_t *)MSGpkt );
+ break;
+
+ case KEY_CHANGE:
+ SensorNode_HandleKeys( ((keyChange_t *)MSGpkt)->keys );
+ break;
+#ifdef FC04
+ case FC04_INCOMING_MSG:
+ FC04_ProcessIncomingMsg( (fc04IncomingMsg_t *)MSGpkt );
+ break;
+#endif
+#ifdef POWER
+ case POWER_INCOMING_MSG:
+ Power_ProcessIncomingMsg( (powerIncomingMsg_t *)MSGpkt );
+ break;
+#endif
+ default:
+ break;
+ }
+ // Release the memory
+ osal_msg_deallocate( (uint8 *)MSGpkt );
+ }
+ // return unprocessed events
+ return (events ^ SYS_EVENT_MSG);
+ }
+
+ if ( events & SensorNode_IDENTIFY_TIMEOUT_EVT )
+ {
+ if ( SensorNode_IdentifyTime > 0 )
+ SensorNode_IdentifyTime--;
+ SensorNode_ProcessIdentifyTimeChange();
+
+ return ( events ^ SensorNode_IDENTIFY_TIMEOUT_EVT );
+ }
+#ifdef ZCL_REPORT
+ //Report PresentValueEP1 min //TODO
+ if ( events & SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MIN_EVT )
+ {
+ uint8 index = SensorNode_ENDPOINT1-1;
+
+// if ( PresentValue_RepStatus[index].next_value != 0 ) //a sample is ready to send
+// {
+// SensorNode_EP_PresentValue[index] = PresentValue_RepStatus[index].next_value;
+// SensorNode_SendTheReport ( index );
+// PresentValue_RepStatus[index].next_value = 0;
+// }
+// else //no sample stored
+// {
+ PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_READY_TO_SEND;
+ osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MAX_EVT,
+ (PresentValue_RepStatus[index].maxReportInt-PresentValue_RepStatus[index].minReportInt)*1000);
+// }
+
+ //Clear the event
+ return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MIN_EVT );
+ }
+
+ //Report PresentValueEP1 max
+ if ( events & SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MAX_EVT )
+ {
+ uint8 index = SensorNode_ENDPOINT1-1;
+
+ 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++;
+ }
+
+ PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_NO_READY_TO_SEND;
+
+ osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MIN_EVT,
+ PresentValue_RepStatus[index].minReportInt*1000);
+
+ //Clear the event
+ return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MAX_EVT );
+ }
+
+//Report PresentValueEP2 min //TODO
+ if ( events & SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MIN_EVT )
+ {
+ uint8 index = SensorNode_ENDPOINT2-1;
+
+// if ( PresentValue_RepStatus[index].next_value != 0 ) //a sample is ready to send
+// {
+// SensorNode_EP_PresentValue[index] = PresentValue_RepStatus[index].next_value;
+// SensorNode_SendTheReport ( index );
+// PresentValue_RepStatus[index].next_value = 0;
+// }
+// else //no sample stored
+// {
+ PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_READY_TO_SEND;
+ osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MAX_EVT,
+ (PresentValue_RepStatus[index].maxReportInt-PresentValue_RepStatus[index].minReportInt)*1000);
+// }
+
+ //Clear the event
+ return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MIN_EVT );
+ }
+
+ //Report PresentValueEP2 max
+ if ( events & SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MAX_EVT )
+ {
+ uint8 index = SensorNode_ENDPOINT2-1;
+
+ 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++;
+ }
+
+ PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_NO_READY_TO_SEND;
+
+ osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MIN_EVT,
+ PresentValue_RepStatus[index].minReportInt*1000);
+
+ //Clear the event
+ return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MAX_EVT );
+ }
+
+ //Report PresentValueEP3 min //TODO
+ if ( events & SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MIN_EVT )
+ {
+ uint8 index = SensorNode_ENDPOINT3-1;
+
+// if ( PresentValue_RepStatus[index].next_value != 0 ) //a sample is ready to send
+// {
+// SensorNode_EP_PresentValue[index] = PresentValue_RepStatus[index].next_value;
+// SensorNode_SendTheReport ( index );
+// PresentValue_RepStatus[index].next_value = 0;
+// }
+// else //no sample stored
+// {
+ PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_READY_TO_SEND;
+ osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MAX_EVT,
+ (PresentValue_RepStatus[index].maxReportInt-PresentValue_RepStatus[index].minReportInt)*1000);
+// }
+
+ //Clear the event
+ return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MIN_EVT );
+ }
+
+ //Report PresentValueEP3 max
+ if ( events & SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MAX_EVT )
+ {
+ uint8 index = SensorNode_ENDPOINT3-1;
+
+ 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++;
+ }
+
+ PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_NO_READY_TO_SEND;
+
+ osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MIN_EVT,
+ PresentValue_RepStatus[index].minReportInt*1000);
+
+ //Clear the event
+ return ( events ^ SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MAX_EVT );
+ }
+#endif
+
+#ifdef POWER
+ if ( events & CONF_THREE_STATE_EVT )
+ {
+ Power_Start_Reading ( SensorNode_TaskID );
+ return ( events ^ CONF_THREE_STATE_EVT);
+ }
+#endif //POWER
+/*
+#ifdef FC04
+// if ( events & NEW_SAMPLES_READY )
+// {
+// return ( events ^ NEW_SAMPLES_READY);
+// }
+#endif
+*/
+ return 0; // Discard unknown events
+
+}
+
+#ifdef FC04
+/*********************************************************************
+ * @fn FC04_ProcessIncomingMsg
+ *
+ * @brief
+ *
+ * @param
+ *
+ * @return none
+ */
+
+static void FC04_ProcessIncomingMsg( fc04IncomingMsg_t *pInMsg )
+{
+ uint8 device = 0xFF;
+
+ switch ( pInMsg->device )
+ {
+ case PIR:
+ device = EP2_PIR;
+// printf("\nPIR: ");
+ break;
+
+ case NOISE:
+ device = EP3_NOISE;
+// printf("\nNOISE: ");
+ break;
+
+ default:
+ break;
+ }
+
+ if ( device != 0xFF )
+ {
+ SensorNode_EP_PresentValue[device] = (float)pInMsg->sample;
+ SensorNode_ProcessAttributeReporting( device );
+
+// printf(" %f", SensorNode_EP_PresentValue[device]);
+
+ FC04_ResetCount( pInMsg->device );
+
+ }
+}
+#endif
+
+#ifdef POWER
+/*********************************************************************
+ * @fn POWER_ProcessIncomingMsg
+ *
+ * @brief
+ *
+ * @param
+ *
+ * @return none
+ */
+
+static void Power_ProcessIncomingMsg( powerIncomingMsg_t *pInMsg )
+{
+ uint8 channel = 0xFF;
+
+ switch ( pInMsg->channel )
+ {
+ case CHANNEL0:
+ channel = EP1_CHANNEL0;
+ break;
+
+ default:
+ break;
+ }
+
+ if ( channel != 0xFF )
+ {
+ SensorNode_EP_PresentValue[channel] = pInMsg->realPower;
+
+ SensorNode_ProcessAttributeReporting( channel );
+
+ float IRMS = pInMsg->IRMS;
+ float VRMS = pInMsg->VRMS;
+ printf("\n");
+ printf(" %f", IRMS);
+ printf(" %f", VRMS);
+ printf(" %f", SensorNode_EP_PresentValue[channel]);
+ printf(" %f", pInMsg->energy);
+
+ }
+
+// Power_Start_Reading ( SensorNode_TaskID ); //Restart sensing
+}
+#endif
+
+/*********************************************************************
+ * @fn SensorNode_ProcessAttributeReporting
+ *
+ * @brief
+ *
+ * @param index
+ *
+ * @return none
+ */
+
+static void SensorNode_ProcessAttributeReporting( uint8 attribute )
+{
+ switch( PresentValue_RepStatus[attribute].Reporting_enabled )
+ {
+ case NO_REPORTING:
+ //do something?
+ break;
+
+ case REPORTING_ENABLED_NO_READY_TO_SEND:
+// // Changes to 'Analog' Attribute
+// if ( PresentValue_RepStatus[i].dataType )
+// {
+// if ( fabs(PresentValue_RepStatus[i].last_value - *PresentValue_RepStatus[i].value) >= PresentValue_RepStatus[i].ReportableChange )
+// {
+// PresentValue_RepStatus[i].next_value = SensorNode_EP_PresentValue[i];
+// }
+// }
+ break;
+
+ case REPORTING_ENABLED_READY_TO_SEND:
+ if ( PresentValue_RepStatus[attribute].dataType )
+ {
+ if ( fabs(PresentValue_RepStatus[attribute].last_value - *PresentValue_RepStatus[attribute].value) >= PresentValue_RepStatus[attribute].ReportableChange )
+ {
+ SensorNode_SendTheReport ( attribute );
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+/*********************************************************************
+ * @fn SensorNode_HandleKeys
+ *
+ * @brief Handles all key events for this device.
+ *
+ * @param keys - bit field for key events. Valid entries:
+ * HAL_KEY_SW_6
+ * HAL_KEY_SW_7
+ *
+ * @return none
+ */
+
+static void SensorNode_HandleKeys( byte keys )
+{
+
+ if ( keys & HAL_KEY_SW_6 )
+ {
+ }
+
+ if ( keys & HAL_KEY_SW_7 )
+ {
+ }
+}
+
+/*********************************************************************
+ * @fn SensorNode_ProcessIdentifyTimeChange
+ *
+ * @brief Called to process any change to the IdentifyTime attribute.
+ *
+ * @param none
+ *
+ * @return none
+ */
+static void SensorNode_ProcessIdentifyTimeChange( void )
+{
+ if ( SensorNode_IdentifyTime > 0 )
+ {
+ osal_start_timerEx( SensorNode_TaskID, SensorNode_IDENTIFY_TIMEOUT_EVT, 1000 );
+ HalLedBlink ( HAL_LED_1, 0xFF, HAL_LED_DEFAULT_DUTY_CYCLE, HAL_LED_DEFAULT_FLASH_TIME );
+ }
+ else
+ {
+ HalLedSet ( HAL_LED_1, HAL_LED_MODE_ON );
+ osal_stop_timerEx( SensorNode_TaskID, SensorNode_IDENTIFY_TIMEOUT_EVT );
+ }
+}
+
+/*********************************************************************
+ * @fn SensorNode_BasicResetCB
+ *
+ * @brief Callback from the ZCL General Cluster Library
+ * to set all the Basic Cluster attributes to default values.
+ *
+ * @param none
+ *
+ * @return none
+ */
+static void SensorNode_BasicResetCB( void )
+{
+ // Reset all attributes to default values
+
+ for ( uint8 i=0; i < SENSORNODE_MAX_ENDPOINT; i++ )
+ *PresentValue_RepStatus[i].value = CONST_PRESENT_VALUE;
+
+ //Analog Input Attributes
+// SensorNode_EP1_PresentValue = CONST_PRESENT_VALUE;
+// SensorNode_EP2_PresentValue = CONST_PRESENT_VALUE;
+}
+
+/*********************************************************************
+ * @fn SensorNode_IdentifyCB
+ *
+ * @brief Callback from the ZCL General Cluster Library when
+ * it received an Identity Command for this application.
+ *
+ * @param srcAddr - source address and endpoint of the response message
+ * @param identifyTime - the number of seconds to identify yourself
+ *
+ * @return none
+ */
+static void SensorNode_IdentifyCB( zclIdentify_t *pCmd )
+{
+ SensorNode_IdentifyTime = pCmd->identifyTime;
+ SensorNode_ProcessIdentifyTimeChange();
+}
+
+/*********************************************************************
+ * @fn SensorNode_IdentifyQueryRspCB
+ *
+ * @brief Callback from the ZCL General Cluster Library when
+ * it received an Identity Query Response Command for this application.
+ *
+ * @param srcAddr - requestor's address
+ * @param timeout - number of seconds to identify yourself (valid for query response)
+ *
+ * @return none
+ */
+static void SensorNode_IdentifyQueryRspCB( zclIdentifyQueryRsp_t *pRsp )
+{
+ // Query Response (with timeout value)
+ (void)pRsp;
+}
+
+
+/******************************************************************************
+ *
+ * Functions for processing ZCL Foundation incoming Command/Response messages
+ *
+ *****************************************************************************/
+
+/*********************************************************************
+ * @fn SensorNode_ProcessIncomingMsg
+ *
+ * @brief Process ZCL Foundation incoming message
+ *
+ * @param pInMsg - pointer to the received message
+ *
+ * @return none
+ */
+static void SensorNode_ProcessIncomingMsg( zclIncomingMsg_t *pInMsg)
+{
+ switch ( pInMsg->zclHdr.commandID )
+ {
+#ifdef ZCL_READ
+ case ZCL_CMD_READ_RSP:
+ SensorNode_ProcessInReadRspCmd( pInMsg );
+ break;
+#endif
+#ifdef ZCL_WRITE
+ case ZCL_CMD_WRITE_RSP:
+ SensorNode_ProcessInWriteRspCmd( pInMsg );
+ break;
+#endif
+#ifdef ZCL_REPORT
+
+ case ZCL_CMD_CONFIG_REPORT:
+ SensorNode_ProcessInConfigReportCmd( pInMsg );
+ break;
+
+ case ZCL_CMD_CONFIG_REPORT_RSP:
+ //SensorNode_ProcessInConfigReportRspCmd( pInMsg );
+ break;
+
+ case ZCL_CMD_READ_REPORT_CFG:
+ //SensorNode_ProcessInReadReportCfgCmd( pInMsg );
+ break;
+
+ case ZCL_CMD_READ_REPORT_CFG_RSP:
+ //SensorNode_ProcessInReadReportCfgRspCmd( pInMsg );
+ break;
+
+ case ZCL_CMD_REPORT:
+ SensorNode_ProcessInReportCmd( pInMsg );
+ break;
+#endif
+ case ZCL_CMD_DEFAULT_RSP:
+ SensorNode_ProcessInDefaultRspCmd( pInMsg );
+ break;
+#ifdef ZCL_DISCOVER
+ case ZCL_CMD_DISCOVER_RSP:
+ SensorNode_ProcessInDiscRspCmd( pInMsg );
+ break;
+#endif
+ default:
+ break;
+ }
+
+ if ( pInMsg->attrCmd )
+ osal_mem_free( pInMsg->attrCmd );
+}
+
+#ifdef ZCL_READ
+/*********************************************************************
+ * @fn SensorNode_ProcessInReadRspCmd
+ *
+ * @brief Process the "Profile" Read Response Command
+ *
+ * @param pInMsg - incoming message to process
+ *
+ * @return none
+ */
+static uint8 SensorNode_ProcessInReadRspCmd( zclIncomingMsg_t *pInMsg )
+{
+ zclReadRspCmd_t *readRspCmd;
+ uint8 i;
+
+ readRspCmd = (zclReadRspCmd_t *)pInMsg->attrCmd;
+ for (i = 0; i < readRspCmd->numAttr; i++)
+ {
+ // Notify the originator of the results of the original read attributes
+ // attempt and, for each successfull request, the value of the requested
+ // attribute
+ }
+
+ return TRUE;
+}
+#endif // ZCL_READ
+
+#ifdef ZCL_WRITE
+/*********************************************************************
+ * @fn SensorNode_ProcessInWriteRspCmd
+ *
+ * @brief Process the "Profile" Write Response Command
+ *
+ * @param pInMsg - incoming message to process
+ *
+ * @return none
+ */
+static uint8 SensorNode_ProcessInWriteRspCmd( zclIncomingMsg_t *pInMsg )
+{
+ zclWriteRspCmd_t *writeRspCmd;
+ uint8 i;
+
+ writeRspCmd = (zclWriteRspCmd_t *)pInMsg->attrCmd;
+ for (i = 0; i < writeRspCmd->numAttr; i++)
+ {
+ // Notify the device of the results of the its original write attributes
+ // command.
+ }
+
+ return TRUE;
+}
+#endif // ZCL_WRITE
+
+/*********************************************************************
+ * @fn SensorNode_ProcessInDefaultRspCmd
+ *
+ * @brief Process the "Profile" Default Response Command
+ *
+ * @param pInMsg - incoming message to process
+ *
+ * @return none
+ */
+static uint8 SensorNode_ProcessInDefaultRspCmd( zclIncomingMsg_t *pInMsg )
+{
+ // zclDefaultRspCmd_t *defaultRspCmd = (zclDefaultRspCmd_t *)pInMsg->attrCmd;
+
+ // Device is notified of the Default Response command.
+ (void)pInMsg;
+
+ return TRUE;
+}
+
+#ifdef ZCL_DISCOVER
+/*********************************************************************
+ * @fn SensorNode_ProcessInDiscRspCmd
+ *
+ * @brief Process the "Profile" Discover Response Command
+ *
+ * @param pInMsg - incoming message to process
+ *
+ * @return none
+ */
+static uint8 SensorNode_ProcessInDiscRspCmd( zclIncomingMsg_t *pInMsg )
+{
+ zclDiscoverRspCmd_t *discoverRspCmd;
+ uint8 i;
+
+ discoverRspCmd = (zclDiscoverRspCmd_t *)pInMsg->attrCmd;
+ for ( i = 0; i < discoverRspCmd->numAttr; i++ )
+ {
+ // Device is notified of the result of its attribute discovery command.
+ }
+
+ return TRUE;
+}
+#endif // ZCL_DISCOVER
+
+
+/***************************************************************************/
+
+#ifdef ZCL_REPORT
+/***************************************************************************/
+/*********************************************************************
+ * @fn SensorNode_SetAttrReportInterval
+ *
+ * @brief Set the Attribute reporting interval
+ *
+ * @param pAttr - pointer to the attribute needing to be reported
+ * @param cfgReportRec - pointer to the record holding the new report interval
+ * @param EndPoint - destination Endpoint
+ *
+ * @return none
+ */
+static uint8 SensorNode_SetAttrReportInterval( zclAttribute_t *pAttr, zclCfgReportRec_t *cfgReportRec, byte EndPoint )
+{
+ uint8 status = ZCL_STATUS_UNREPORTABLE_ATTRIBUTE;
+ uint16 evt = 0;
+
+ switch(pAttr->attrId)
+ {
+ case ATTRID_IOV_BASIC_PRESENT_VALUE:
+ PresentValue_RepStatus[EndPoint-1].minReportInt = cfgReportRec->minReportInt;
+ PresentValue_RepStatus[EndPoint-1].maxReportInt = cfgReportRec->maxReportInt;
+ PresentValue_RepStatus[EndPoint-1].dataType = zclAnalogDataType( cfgReportRec->dataType );
+ PresentValue_RepStatus[EndPoint-1].last_value = *PresentValue_RepStatus[EndPoint-1].value;
+// PresentValue_RepStatus[EndPoint-1].next_value = 0; //TODO
+ PresentValue_RepStatus[EndPoint-1].Reporting_enabled = REPORTING_ENABLED_NO_READY_TO_SEND; //TODO
+
+ if ( PresentValue_RepStatus[EndPoint-1].dataType )
+ {
+ osal_memcpy( &PresentValue_RepStatus[EndPoint-1].ReportableChange, cfgReportRec->reportableChange, sizeof( PresentValue_RepStatus[EndPoint-1].ReportableChange ));
+ }
+
+ status = ZCL_STATUS_SUCCESS;
+ break;
+
+ default:
+ status = ZCL_STATUS_UNREPORTABLE_ATTRIBUTE;
+
+ }
+
+ evt = SensorNode_GetMinEvent( EndPoint );
+
+ if ( evt != 0)
+ {
+ osal_stop_timerEx( SensorNode_TaskID, evt );
+ //Start the timer. Time out in ms so *1000 to get seconds
+ osal_start_timerEx( SensorNode_TaskID, evt, PresentValue_RepStatus[EndPoint-1].minReportInt*1000 );
+ }
+
+ return status;
+}
+
+/*********************************************************************
+ * @fn SensorNode_SendTheReport
+ *
+ * @brief Send the report command
+ *
+ * @param index - Endpoint-1
+ * @param evt - which endpoint?
+ *
+ * @return none
+ */
+static uint8 SensorNode_SendTheReport( uint8 index ) //TODO
+{
+ uint8 status = ZCL_STATUS_FAILURE;
+
+// // Changes to 'Analog' Attribute
+// if ( PresentValue_RepStatus[index].dataType )
+// {
+// // A report shall be generated when the attribute undergoes a chenge of value equal to or greater than Reportable Change
+// if ( fabs(PresentValue_RepStatus[index].last_value - *PresentValue_RepStatus[index].value) >= PresentValue_RepStatus[index].ReportableChange )
+// {
+ if ( pAnalogInputReportCmd[index] != NULL )
+ {
+ //Send the report
+ 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 );
+
+// if ( status == ZSuccess )
+// {
+
+ PresentValue_RepStatus[index].Reporting_enabled = REPORTING_ENABLED_NO_READY_TO_SEND;
+
+ uint16 evt = SensorNode_GetMaxEvent ( index+1 );
+ if ( evt != 0)
+ osal_stop_timerEx( SensorNode_TaskID, evt );
+
+ evt = SensorNode_GetMinEvent ( index+1 );
+ if ( evt != 0)
+ osal_start_timerEx( SensorNode_TaskID, evt, PresentValue_RepStatus[index].minReportInt*1000 );
+
+ PresentValue_RepStatus[index].seqNumRep++;
+ PresentValue_RepStatus[index].last_value = *PresentValue_RepStatus[index].value;
+// }
+
+
+ }
+// }
+// else
+// //restart the timer and waiting for a change of the value
+// osal_start_timerEx( SensorNode_TaskID, evt, PresentValue_RepStatus[index].minReportInt*1000 );
+// }
+ return status;
+}
+
+
+/*********************************************************************
+ * @fn SensorNode_GetMinEvent
+ *
+ * @brief
+ *
+ * @param Endpoint
+ *
+ * @return evt
+ */
+static uint16 SensorNode_GetMinEvent( uint8 EndPoint ) //TODO
+{
+ uint16 evt;
+
+ switch(EndPoint)
+ {
+ case SensorNode_ENDPOINT1:
+ evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MIN_EVT;
+ break;
+
+ case SensorNode_ENDPOINT2:
+ evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MIN_EVT;
+ break;
+
+ case SensorNode_ENDPOINT3:
+ evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MIN_EVT;
+ break;
+//
+// 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_ENDPOINT6:
+// evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP6_MIN_EVT;
+// break;
+//
+// case SensorNode_ENDPOINT7:
+// evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP7_MIN_EVT;
+// break;
+//
+// case SensorNode_ENDPOINT8:
+// evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP8_MIN_EVT;
+// break;
+
+ default:
+ evt = 0;
+ }
+
+ return evt;
+}
+
+/*********************************************************************
+ * @fn SensorNode_GetMinEvent
+ *
+ * @brief
+ *
+ * @param Endpoint
+ *
+ * @return evt
+ */
+static uint16 SensorNode_GetMaxEvent( uint8 EndPoint ) //TODO
+{
+ uint16 evt;
+
+ switch(EndPoint)
+ {
+ case SensorNode_ENDPOINT1:
+ evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MAX_EVT;
+ break;
+
+ case SensorNode_ENDPOINT2:
+ evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MAX_EVT;
+ break;
+
+ case SensorNode_ENDPOINT3:
+ evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MAX_EVT;
+ break;
+//
+// 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_ENDPOINT6:
+// evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP6_MAX_EVT;
+// break;
+//
+// case SensorNode_ENDPOINT7:
+// evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP7_MAX_EVT;
+// break;
+//
+// case SensorNode_ENDPOINT8:
+// evt = SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP8_MAX_EVT;
+// break;
+
+ default:
+ evt = 0;
+ }
+
+ return evt;
+}
+
+/*********************************************************************
+ * @fn SensorNode_SetAttrTimeoutPeriod
+ *
+ * @brief Set the Attribute reporting interval
+ *
+ * @param pAttr - pointer to the attribute needing to be reported
+ * @param cfgReportRec - pointer to the record holding the new report period
+ *
+ * @return none
+ */
+static uint8 SensorNode_SetAttrTimeoutPeriod( zclAttribute_t *pAttr, zclCfgReportRec_t *cfgReportRec )
+{
+ uint8 status = ZCL_STATUS_UNSUPPORTED_ATTRIBUTE;
+
+ switch(pAttr->attrId)
+ {
+ case ATTRID_IOV_BASIC_PRESENT_VALUE:
+ AnalogInputReportTimeoutPeriod = cfgReportRec->timeoutPeriod;
+
+ osal_stop_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_TIMEOUT_EVT );
+ //Start the timer. Time out in ms so *1000 to get seconds
+
+ osal_start_timerEx( SensorNode_TaskID, SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_TIMEOUT_EVT, AnalogInputReportTimeoutPeriod*1000 );
+
+ status = ZCL_STATUS_SUCCESS;
+
+ break;
+
+ default:
+ status = ZCL_STATUS_UNSUPPORTED_ATTRIBUTE;
+ }
+
+ return status;
+}
+
+/*********************************************************************
+ * @fn SensorNode_ProcessInConfigReportCmd
+ *
+ * @brief Process the "Profile" Configure Reporting Command
+ *
+ * @param pInMsg - incoming message to process
+ * @param logicalClusterID - logical cluster ID
+ *
+ * @return TRUE if attribute was found in the Attribute list,
+ * FALSE if not
+ */
+
+static uint8 SensorNode_ProcessInConfigReportCmd( zclIncomingMsg_t *pInMsg )
+{
+ endPointDesc_t *epDesc;
+ zclCfgReportCmd_t *cfgReportCmd;
+ zclCfgReportRec_t *reportRec;
+ zclCfgReportRspCmd_t *cfgReportRspCmd;
+ zclAttrRec_t attrRec;
+ uint8 status;
+ uint8 i, j = 0;
+
+ cfgReportCmd = (zclCfgReportCmd_t *)pInMsg->attrCmd;
+
+ // Allocate space for the response command
+ cfgReportRspCmd = (zclCfgReportRspCmd_t *)osal_mem_alloc( sizeof ( zclCfgReportRspCmd_t ) + \
+ ( cfgReportCmd->numAttr * sizeof ( zclCfgReportStatus_t) ) );
+ if ( cfgReportRspCmd == NULL )
+ return FALSE; // EMBEDDED RETURN
+
+ // Find the wanted endpoint
+ epDesc = afFindEndPointDesc( pInMsg->endPoint );
+ if ( epDesc == NULL )
+ return FALSE; // Error, ignore the message
+
+ // Process each Attribute Reporting Configuration record
+ for ( i = 0; i < cfgReportCmd->numAttr; i++ )
+ {
+ reportRec = &(cfgReportCmd->attrList[i]);
+
+ status = ZCL_STATUS_SUCCESS;
+
+ if ( zclFindAttrRec( pInMsg->endPoint, pInMsg->clusterId, reportRec->attrID, &attrRec ) )
+ {
+ if ( reportRec->direction == ZCL_SEND_ATTR_REPORTS )
+ {
+ if ( reportRec->dataType == attrRec.attr.dataType )
+ {
+ // This the attribute that is to be reported
+ if ( zcl_MandatoryReportableAttribute( attrRec ) == TRUE )
+ {
+ if ( reportRec->minReportInt < ZCL_MIN_REPORTING_INTERVAL ||
+ ( reportRec->maxReportInt != 0 &&
+ reportRec->maxReportInt < reportRec->minReportInt ) )
+ {
+ // Invalid fields
+ status = ZCL_STATUS_INVALID_VALUE;
+ }
+ else
+ {
+ // Set the Min and Max Reporting Intervals and Reportable Change
+ status = SensorNode_SetAttrReportInterval( &attrRec.attr,
+ reportRec, pInMsg->endPoint );
+ }
+ }
+ else
+ {
+ // Attribute cannot be reported
+ status = ZCL_STATUS_UNREPORTABLE_ATTRIBUTE;
+ }
+ }
+ else
+ {
+ // Attribute data type is incorrect
+ status = ZCL_STATUS_INVALID_DATA_TYPE;
+ }
+ }
+ else
+ {
+ // We shall expect reports of values of this attribute
+ if ( zcl_MandatoryReportableAttribute( attrRec ) == TRUE )
+ {
+ // Set the Timeout Period
+ status = SensorNode_SetAttrTimeoutPeriod( &attrRec.attr, reportRec );
+ }
+ else
+ {
+ // Reports of attribute cannot be received
+ status = ZCL_STATUS_UNSUPPORTED_ATTRIBUTE;
+ }
+ }
+ }
+ else
+ {
+ // Attribute is not supported
+ status = ZCL_STATUS_UNSUPPORTED_ATTRIBUTE;
+ }
+
+ // If not successful then record the status
+ if ( status != ZCL_STATUS_SUCCESS )
+ {
+ cfgReportRspCmd->attrList[j].status = status;
+ cfgReportRspCmd->attrList[j].direction = reportRec->direction;
+ cfgReportRspCmd->attrList[j++].attrID = reportRec->attrID;
+ }
+ } // for loop
+
+ cfgReportRspCmd->numAttr = j;
+ if ( cfgReportRspCmd->numAttr == 0 )
+ {
+ // Since all attributes were configured successfully, include a single
+ // attribute status record in the response command with the status field
+ // set to SUCCESS and the attribute ID field omitted.
+ cfgReportRspCmd->attrList[0].status = ZCL_STATUS_SUCCESS;
+ cfgReportRspCmd->numAttr = 1;
+ }
+
+ // Send the response back
+ zcl_SendConfigReportRspCmd( pInMsg->endPoint, &(pInMsg->srcAddr),
+ pInMsg->clusterId, cfgReportRspCmd, ZCL_FRAME_SERVER_CLIENT_DIR,
+ true, pInMsg->zclHdr.transSeqNum );
+ osal_mem_free( cfgReportRspCmd );
+
+ return TRUE ;
+}
+
+
+/*********************************************************************
+ * @fn SensorNode_ProcessInReportCmd
+ *
+ * @brief Process the "Profile" Report Command
+ *
+ * @param pInMsg - incoming message to process
+ *
+ * @return none
+ */
+static uint8 SensorNode_ProcessInReportCmd( zclIncomingMsg_t *pInMsg )
+{
+ return 0;
+}
+/****************************************************************************
+****************************************************************************/
+#endif // ZCL_REPORT
Added: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode.h (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode.h Thu Apr 24 16:09:16 2014
@@ -1,0 +1,144 @@
+/**************************************************************************************************
+ Filename: SensorNode.h
+ Revised: $Date: 2007-10-27 17:22:23 -0700 (Sat, 27 Oct 2007) $
+ Revision: $Revision: 15795 $
+
+ Description: This file contains the Generic Application definitions.
+
+*******************************************************************************/
+
+#ifndef ZCL_SensorNode_H
+#define ZCL_SensorNode_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*********************************************************************
+ * INCLUDES
+ */
+#include "zcl.h"
+
+
+/*********************************************************************
+ * CONSTANTS
+ */
+
+#define SensorNode_ENDPOINT1 1
+#define SensorNode_ENDPOINT2 2
+#define SensorNode_ENDPOINT3 3
+#define SensorNode_ENDPOINT4 4
+#define SensorNode_ENDPOINT5 5
+#define SensorNode_ENDPOINT6 6
+#define SensorNode_ENDPOINT7 7
+#define SensorNode_ENDPOINT8 8
+
+#define SENSORNODE_MAX_ATTRIBUTES 21
+#define SENSORNODE_MAX_ENDPOINT 3 //max number of reportable endpoints
+
+
+//Devices for reporting
+#ifdef POWER
+#define EP1_CHANNEL0 0
+#endif
+#ifdef FC04
+#define EP2_PIR 1
+#define EP3_NOISE 2
+#endif
+
+// Application Events
+#define SensorNode_IDENTIFY_TIMEOUT_EVT 0x0001
+
+//Event for Reporting PresentValue
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MIN_EVT 0x0002
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP1_MAX_EVT 0x0004
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MIN_EVT 0x0008
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP2_MAX_EVT 0x0010
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MIN_EVT 0x0020
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP3_MAX_EVT 0x0040
+//#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP7_EVT 0x0080
+//#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_EP8_EVT 0x0100
+
+//Event for Reporting On/Off timeout event.
+#define SensorNode_ANALOG_INPUT_REPORT_ATTRIBUTE_TIMEOUT_EVT 0x4000
+
+// Analog Input Constants
+#define CONST_PRESENT_VALUE 0x00
+
+#ifdef ZCL_REPORT //TODO
+#define NO_REPORTING 0x00
+#define REPORTING_ENABLED_NO_READY_TO_SEND 0x01
+#define REPORTING_ENABLED_READY_TO_SEND 0x02
+#endif
+/*********************************************************************
+ * MACROS
+ */
+/*********************************************************************
+ * TYPEDEFS
+ */
+
+#ifdef ZCL_REPORT
+typedef struct {
+ float* value;
+ float last_value;
+ uint8 seqNumRep;
+// uint32 last_sent;
+// uint32 next_sent;
+ uint8 dataType; // attribute data type
+ uint16 minReportInt; // minimum reporting interval
+ uint16 maxReportInt; // maximum reporting interval
+ float ReportableChange;
+ uint8 Reporting_enabled; //TODO
+// float next_value; //TODO
+} zclReportingStatus_t;
+#endif
+
+/*********************************************************************
+ * VARIABLES
+ */
+extern SimpleDescriptionFormat_t SensorNode_SimpleDesc1;
+extern SimpleDescriptionFormat_t SensorNode_SimpleDesc2;
+extern SimpleDescriptionFormat_t SensorNode_SimpleDesc3;
+extern SimpleDescriptionFormat_t SensorNode_SimpleDesc4;
+extern SimpleDescriptionFormat_t SensorNode_SimpleDesc5;
+extern SimpleDescriptionFormat_t SensorNode_SimpleDesc6;
+extern SimpleDescriptionFormat_t SensorNode_SimpleDesc7;
+extern SimpleDescriptionFormat_t SensorNode_SimpleDesc8;
+
+extern CONST zclAttrRec_t SensorNode_Attrs_EP1[];
+extern CONST zclAttrRec_t SensorNode_Attrs_EP2[];
+extern CONST zclAttrRec_t SensorNode_Attrs_EP3[];
+extern CONST zclAttrRec_t SensorNode_Attrs_EP4[];
+extern CONST zclAttrRec_t SensorNode_Attrs_EP5[];
+extern CONST zclAttrRec_t SensorNode_Attrs_EP6[];
+extern CONST zclAttrRec_t SensorNode_Attrs_EP7[];
+extern CONST zclAttrRec_t SensorNode_Attrs_EP8[];
+
+extern uint16 SensorNode_IdentifyTime;
+
+extern float SensorNode_EP_PresentValue[SENSORNODE_MAX_ENDPOINT];
+
+
+/*********************************************************************
+ * FUNCTIONS
+ */
+
+ /*
+ * Initialization for the task
+ */
+extern void SensorNode_Init( byte task_id );
+
+/*
+ * Event Process for the task
+ */
+extern UINT16 SensorNode_event_loop( byte task_id, UINT16 events );
+
+/*********************************************************************
+*********************************************************************/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ZCL_SensorNode_H */
Added: projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode_data.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode_data.c (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/SensorNode-FC04-PIR-POWER/Source/SensorNode_data.c Thu Apr 24 16:09:16 2014
@@ -1,0 +1,1818 @@
+/**************************************************************************************************
+ Filename: SensorNode_data.c
+ Revised: $Date: 10-2013 $
+ Revision: $Revision: 1 $
+
+
+ Description:
+**************************************************************************************************/
+
+/*********************************************************************
+ * INCLUDES
+ */
+#include "ZComDef.h"
+#include "OSAL.h"
+#include "AF.h"
+#include "ZDConfig.h"
+
+#include "zcl.h"
+#include "zcl_general.h"
+#include "zcl_ha.h"
+
+#include "SensorNode.h"
+
+/*********************************************************************
+ * CONSTANTS
+ */
+
+#define SENSORNODE_DEVICE_VERSION 0
+#define SENSORNODE_FLAGS 0
+
+#define SENSORNODE_HWVERSION 1
+#define SENSORNODE_ZCLVERSION 1
+
+/*********************************************************************
+ * TYPEDEFS
+ */
+
+/*********************************************************************
+ * MACROS
+ */
+
+/*********************************************************************
+ * GLOBAL VARIABLES
+ */
+
+// Basic Cluster
+const uint8 SensorNode_ZCLVersion = SENSORNODE_ZCLVERSION;
+const uint8 SensorNode_ApplicationVersion = 2; //Aggiunta
+const uint8 SensorNode_StackVersion = 4; //Aggiunta
+const uint8 SensorNode_HWRevision = SENSORNODE_HWVERSION;
+const uint8 SensorNode_ManufacturerName[] = { 5, 'W','n','L','a','b' };
+const uint8 SensorNode_ModelId[] = { 6, '0','0','0','0','0','1' };
+const uint8 SensorNode_DateCode[] = { 16, '2','0','1','3','1','2','1','3','I','T','A',' ','P','I','S','A' };
+const uint8 SensorNode_PowerSource = POWER_SOURCE_MAINS_1_PHASE;
+
+uint8 SensorNode_LocationDescription[] = { 11, 'W','n',' ','L','a','b',' ','T','e','s','t' };
+uint8 SensorNode_PhysicalEnvironment = 0;
+uint8 SensorNode_DeviceEnable = DEVICE_ENABLED;
+
+// Identify Cluster
+uint16 SensorNode_IdentifyTime = 0;
+
+// Analog & Binary Input Cluster
+bool SensorNode_OutOfService = FALSE;
+const uint8 SensorNode_Reliability = 0x00;
+uint8 SensorNode_StatusFlag = 0;
+
+// Analog Input Cluster
+float SensorNode_EP_PresentValue[SENSORNODE_MAX_ENDPOINT];
+
+uint8 SensorNode_Description_1[] = { 16, 'A','n','a','l','o','g',' ','I','n','p','u','t',' ','C','l','.' };
+const float SensorNode_MaxPresentValue = 5000.0;
+const float SensorNode_MinPresentValue = 0.0;
+const float SensorNode_Resolution = 1.0;
+
+/*********************************************************************
+ * ATTRIBUTE DEFINITIONS FOR ENDPOINT 1- Uses REAL cluster IDs
+ */
+CONST zclAttrRec_t SensorNode_Attrs_EP1[SENSORNODE_MAX_ATTRIBUTES] =
+{
+ // *** 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[0]
+ }
+ },
+
+ {
+ 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 2- Uses REAL cluster IDs
+ */
+CONST zclAttrRec_t SensorNode_Attrs_EP2[SENSORNODE_MAX_ATTRIBUTES] =
+{
+ // *** 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[1]
+ }
+ },
+
+ {
+ 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 3- Uses REAL cluster IDs
+ */
+CONST zclAttrRec_t SensorNode_Attrs_EP3[SENSORNODE_MAX_ATTRIBUTES] =
+{
+ // *** 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[2]
+ }
+ },
+
+ {
+ 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 4- Uses REAL cluster IDs
+// */
+//CONST zclAttrRec_t SensorNode_Attrs_EP4[SENSORNODE_MAX_ATTRIBUTES] =
+//{
+// // *** 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[3]
+// }
+// },
+//
+// {
+// 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] =
+//{
+// // *** 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
+// */
+//CONST zclAttrRec_t SensorNode_Attrs_EP6[SENSORNODE_MAX_ATTRIBUTES] =
+//{
+// // *** 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[5]
+// }
+// },
+//
+// {
+// 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 7- Uses REAL cluster IDs
+// */
+//CONST zclAttrRec_t SensorNode_Attrs_EP7[SENSORNODE_MAX_ATTRIBUTES] =
+//{
+// // *** 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[6]
+// }
+// },
+//
+// {
+// 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 8- Uses REAL cluster IDs
+// */
+//CONST zclAttrRec_t SensorNode_Attrs_EP8[SENSORNODE_MAX_ATTRIBUTES] =
+//{
+// // *** 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[7]
+// }
+// },
+//
+// {
+// 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
+// }
+// },
+//
+//};
+//
+
+/*********************************************************************
+ * SIMPLE DESCRIPTOR
+ */
+// This is the Cluster ID List and should be filled with Application
+// specific cluster IDs.
+
+#define ZCLSENSORNODE_MAX_INCLUSTERS 3
+const cId_t SensorNode_InClusterList[ZCLSENSORNODE_MAX_INCLUSTERS] =
+{
+ ZCL_CLUSTER_ID_GEN_BASIC,
+ ZCL_CLUSTER_ID_GEN_IDENTIFY,
+ ZCL_CLUSTER_ID_GEN_ANALOG_INPUT_BASIC
+};
+
+#define ZCLSENSORNODE_MAX_OUTCLUSTERS 1
+const cId_t SensorNode_OutClusterList[ZCLSENSORNODE_MAX_OUTCLUSTERS] =
+{
+ ZCL_CLUSTER_ID_GEN_BASIC,
+};
+
+
+SimpleDescriptionFormat_t SensorNode_SimpleDesc1 =
+{
+ SensorNode_ENDPOINT1, // int Endpoint;
+ ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];
+ ZCL_HA_DEVICEID_SIMPLE_SENSOR, // uint16 AppDeviceId[2];
+ SENSORNODE_DEVICE_VERSION, // int AppDevVer:4;
+ SENSORNODE_FLAGS, // int AppFlags:4;
+ ZCLSENSORNODE_MAX_INCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_InClusterList, // byte *pAppInClusterList;
+ ZCLSENSORNODE_MAX_OUTCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_OutClusterList // byte *pAppInClusterList;
+};
+
+SimpleDescriptionFormat_t SensorNode_SimpleDesc2 =
+{
+ SensorNode_ENDPOINT2, // int Endpoint;
+ ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];
+ ZCL_HA_DEVICEID_SIMPLE_SENSOR, // uint16 AppDeviceId[2];
+ SENSORNODE_DEVICE_VERSION, // int AppDevVer:4;
+ SENSORNODE_FLAGS, // int AppFlags:4;
+ ZCLSENSORNODE_MAX_INCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_InClusterList, // byte *pAppInClusterList;
+ ZCLSENSORNODE_MAX_OUTCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_OutClusterList // byte *pAppInClusterList;
+};
+
+SimpleDescriptionFormat_t SensorNode_SimpleDesc3 =
+{
+ SensorNode_ENDPOINT3, // int Endpoint;
+ ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];
+ ZCL_HA_DEVICEID_SIMPLE_SENSOR, // uint16 AppDeviceId[2];
+ SENSORNODE_DEVICE_VERSION, // int AppDevVer:4;
+ SENSORNODE_FLAGS, // int AppFlags:4;
+ ZCLSENSORNODE_MAX_INCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_InClusterList, // byte *pAppInClusterList;
+ ZCLSENSORNODE_MAX_OUTCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_OutClusterList // byte *pAppInClusterList;
+};
+
+SimpleDescriptionFormat_t SensorNode_SimpleDesc4 =
+{
+ SensorNode_ENDPOINT4, // int Endpoint;
+ ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];
+ ZCL_HA_DEVICEID_SIMPLE_SENSOR, // uint16 AppDeviceId[2];
+ SENSORNODE_DEVICE_VERSION, // int AppDevVer:4;
+ SENSORNODE_FLAGS, // int AppFlags:4;
+ ZCLSENSORNODE_MAX_INCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_InClusterList, // byte *pAppInClusterList;
+ ZCLSENSORNODE_MAX_OUTCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_OutClusterList // byte *pAppInClusterList;
+};
+
+SimpleDescriptionFormat_t SensorNode_SimpleDesc5 =
+{
+ SensorNode_ENDPOINT5, // int Endpoint;
+ ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];
+ ZCL_HA_DEVICEID_SIMPLE_SENSOR, // uint16 AppDeviceId[2];
+ SENSORNODE_DEVICE_VERSION, // int AppDevVer:4;
+ SENSORNODE_FLAGS, // int AppFlags:4;
+ ZCLSENSORNODE_MAX_INCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_InClusterList, // byte *pAppInClusterList;
+ ZCLSENSORNODE_MAX_OUTCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_OutClusterList // byte *pAppInClusterList;
+};
+
+SimpleDescriptionFormat_t SensorNode_SimpleDesc6 =
+{
+ SensorNode_ENDPOINT6, // int Endpoint;
+ ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];
+ ZCL_HA_DEVICEID_SIMPLE_SENSOR, // uint16 AppDeviceId[2];
+ SENSORNODE_DEVICE_VERSION, // int AppDevVer:4;
+ SENSORNODE_FLAGS, // int AppFlags:4;
+ ZCLSENSORNODE_MAX_INCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_InClusterList, // byte *pAppInClusterList;
+ ZCLSENSORNODE_MAX_OUTCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_OutClusterList // byte *pAppInClusterList;
+};
+
+SimpleDescriptionFormat_t SensorNode_SimpleDesc7 =
+{
+ SensorNode_ENDPOINT7, // int Endpoint;
+ ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];
+ ZCL_HA_DEVICEID_SIMPLE_SENSOR, // uint16 AppDeviceId[2];
+ SENSORNODE_DEVICE_VERSION, // int AppDevVer:4;
+ SENSORNODE_FLAGS, // int AppFlags:4;
+ ZCLSENSORNODE_MAX_INCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_InClusterList, // byte *pAppInClusterList;
+ ZCLSENSORNODE_MAX_OUTCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_OutClusterList // byte *pAppInClusterList;
+};
+
+SimpleDescriptionFormat_t SensorNode_SimpleDesc8 =
+{
+ SensorNode_ENDPOINT8, // int Endpoint;
+ ZCL_HA_PROFILE_ID, // uint16 AppProfId[2];
+ ZCL_HA_DEVICEID_SIMPLE_SENSOR, // uint16 AppDeviceId[2];
+ SENSORNODE_DEVICE_VERSION, // int AppDevVer:4;
+ SENSORNODE_FLAGS, // int AppFlags:4;
+ ZCLSENSORNODE_MAX_INCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_InClusterList, // byte *pAppInClusterList;
+ ZCLSENSORNODE_MAX_OUTCLUSTERS, // byte AppNumInClusters;
+ (cId_t *)SensorNode_OutClusterList // byte *pAppInClusterList;
+};
+/*********************************************************************
+ * GLOBAL FUNCTIONS
+ */
+
+/*********************************************************************
+ * LOCAL FUNCTIONS
+ */
+
+/****************************************************************************
+****************************************************************************/
+
+
Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/stack/zcl/zcl.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/stack/zcl/zcl.c (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/stack/zcl/zcl.c Thu Apr 24 16:09:16 2014
@@ -3613,6 +3613,8 @@
pCmd->srcAddr = pInMsg->msg->srcAddr;
pCmd->attrCmd = pInMsg->attrCmd;
+ pCmd->endPoint = pInMsg->msg->endPoint;
+
// Application will free the attrCmd buffer
pInMsg->attrCmd = NULL;
Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/stack/zcl/zcl.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/stack/zcl/zcl.h (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Components/stack/zcl/zcl.h Thu Apr 24 16:09:16 2014
@@ -571,6 +571,7 @@
uint16 clusterId; // Cluster ID
afAddrType_t srcAddr; // Sender's address
void *attrCmd; // pointer to the parsed attribute or command
+ uint8 endPoint; // destination endpoint
} zclIncomingMsg_t;
// Function pointer type to handle incoming messages.
Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fc04.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fc04.c (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fc04.c Thu Apr 24 16:09:16 2014
@@ -3,12 +3,13 @@
* INCLUDES
*/
- #include "hal_board_cfg.h"
+#include "hal_board_cfg.h"
- #include "fc04.h"
- #include "stdio.h"
- #include "OSAL_Timers.h"
-
+#include "fc04.h"
+#include "stdio.h"
+#include "OSAL_Timers.h"
+#include "OSAL.h"
+#include "OSAL_Tasks.h"
/*********************************************************************
* CONSTANTS
*/
@@ -18,7 +19,10 @@
*/
byte fc04_TaskID;
+ byte fc04_Application_TaskID = TASK_NO_TASK;
+ uint16 count[2];
+ uint8 NumberOfSamples = 0;
/*********************************************************************
* @fn FC04_Init
*
@@ -42,10 +46,11 @@
P1DIR &= ~(1<<1); //P1_1 Set Input
P1INP &= ~(1<<1); //P1_1 pull-up pull-down mode
- osal_start_timerEx( fc04_TaskID, READING_EVT, READING_TIMEOUT );
}
-
- UINT16 FC04_loop( byte task_id, UINT16 events )
+
+/*********************************************************************/
+
+UINT16 FC04_loop( byte task_id, UINT16 events )
{
switch ( events )
{
@@ -58,20 +63,73 @@
}
}
+/*********************************************************************/
+
void Read ( void )
{
- if (P1_0)
- printf("\nHIGH");
- else
- printf("\nLOW");
+ if (P1_0) //PIR in P1_0
+ count[0] += 1;
+// printf("\nHIGH");
+// else
+// printf("\nLOW");
- if (P1_1)
- printf(" HIGH");
- else
- printf(" LOW");
+ if (P1_1) //NOISE in P1_0
+ count[1] += 1;
+// printf(" HIGH");
+// else
+// printf(" LOW");
+
+ NumberOfSamples++;
+
+ if ( NumberOfSamples == MAX_READINGS )
+ {
+ FC04_SendMsg( PIR );
+ FC04_SendMsg( NOISE );
+ NumberOfSamples = 0;
+ }
osal_start_timerEx( fc04_TaskID, READING_EVT, READING_TIMEOUT );
}
+/*********************************************************************/
+void Start_Capture ( byte TaskID )
+{
+ fc04_Application_TaskID = TaskID;
+
+ osal_start_timerEx( fc04_TaskID, READING_EVT, READING_TIMEOUT );
+}
+
+/*********************************************************************/
+
+void FC04_ResetCount ( uint8 index )
+{
+ if( index < FC_MAX_CHANNELS )
+ count[index] = 0;
+}
+
+/*********************************************************************/
+
+uint8 static FC04_SendMsg ( uint8 identify )
+{
+ fc04IncomingMsg_t *pCmd;
+
+ if ( fc04_Application_TaskID == TASK_NO_TASK )
+ return ( TRUE );
+
+ pCmd = (fc04IncomingMsg_t *)osal_msg_allocate( sizeof ( fc04IncomingMsg_t ) );
+
+ if ( pCmd != NULL )
+ {
+ // fill in the message
+ pCmd->hdr.event = FC04_INCOMING_MSG;
+ pCmd->device = identify;
+ pCmd->sample = count[identify];
+
+ /* send message through task message */
+ osal_msg_send( fc04_Application_TaskID, (uint8 *)pCmd );
+ }
+
+ return ( TRUE );
+}
#endif
Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fc04.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fc04.h (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fc04.h Thu Apr 24 16:09:16 2014
@@ -4,21 +4,43 @@
*/
#include "ZComDef.h"
-
+#include "OSAL.h"
/*********************************************************************
* CONSTANTS
*/
- #define READING_EVT 0x0001
-
- #define READING_TIMEOUT 25
- /*********************************************************************
- * FUNCTIONS
- */
+#define FC_MAX_CHANNELS 2
+#define MAX_READINGS 170
+
+#define READING_EVT 0x0001
+#define NEW_SAMPLES_READY 0x0200
+#define FC04_INCOMING_MSG 0xE0
+
+#define READING_TIMEOUT 23
+
+//Which trasducer?
+#define PIR 0x00
+#define NOISE 0x01
+
+/*********************************************************************
+* TYPEDEFS
+*/
+
+typedef struct
+{
+ osal_event_hdr_t hdr; // OSAL header
+ uint8 device; // which device
+ uint16 sample;
+}fc04IncomingMsg_t;
+/*********************************************************************
+* FUNCTIONS
+*/
extern void FC04_Init ( byte task_id );
extern UINT16 FC04_loop( byte task_id, UINT16 events );
void Read ( void );
-
+void Start_Capture ( byte TaskID );
+void FC04_ResetCount ( uint8 index );
+uint8 static FC04_SendMsg ( uint8 identify );
#endif
Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fsr400.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fsr400.c (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fsr400.c Thu Apr 24 16:09:16 2014
@@ -26,17 +26,8 @@
byte fsr400_TaskID;
byte Application_TaskID;
-SingleSensingConf_t FSR_6;
-SingleSensingConf_t FSR_7;
-
-#ifdef NOBOARD
-SingleSensingConf_t FSR_0;
-SingleSensingConf_t FSR_1;
-SingleSensingConf_t FSR_2;
-SingleSensingConf_t FSR_3;
-SingleSensingConf_t FSR_4;
-SingleSensingConf_t FSR_5;
-#endif
+SingleSensingConf_t FSR[FSR_MAX_CHANNELS];
+
/*********************************************************************
* @fn fsr400_Init
@@ -56,16 +47,6 @@
//3STATE PORT CONFIG
P0INP |= (1<<7); // P0_7 3state mode
P0INP |= (1<<6); // P0_6 3state mode
-
- // PULLDOWN PORT CONFIG
-// P2INP |= (1<<5);
-
- FSR_7.port = HAL_ADC_CHANNEL_OPEN_7;
- FSR_7.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-
- FSR_6.port = HAL_ADC_CHANNEL_OPEN_6;
- FSR_6.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-
#ifdef NOBOARD
P0INP |= (1<<5); // P0_5 3state mode
P0INP |= (1<<4); // P0_4 3state mode
@@ -73,27 +54,68 @@
P0INP |= (1<<2); // P0_2 3state mode
P0INP |= (1<<1); // P0_1 3state mode
P0INP |= (1<<0); // P0_0 3state mode
-
- FSR_5.port = HAL_ADC_CHANNEL_OPEN_5;
- FSR_5.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-
- FSR_4.port = HAL_ADC_CHANNEL_OPEN_4;
- FSR_4.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-
- FSR_3.port = HAL_ADC_CHANNEL_OPEN_3;
- FSR_3.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-
- FSR_2.port = HAL_ADC_CHANNEL_OPEN_2;
- FSR_2.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-
- FSR_1.port = HAL_ADC_CHANNEL_OPEN_1;
- FSR_1.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-
- FSR_0.port = HAL_ADC_CHANNEL_OPEN_0;
- FSR_0.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
#endif
- osal_start_timerEx( fsr400_TaskID, CONF_THREE_STATE_EVT, CONF_THREE_STATE_TIMEOUT );
+// FSR_7.port = HAL_ADC_CHANNEL_OPEN_7;
+// FSR_7.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+
+// FSR_6.port = HAL_ADC_CHANNEL_OPEN_6;
+// FSR_6.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+
+ for( uint8 i = 0; i<FSR_MAX_CHANNELS; i++)
+ {
+ FSR[i].resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+ switch(i)
+ {
+ case 0:
+ FSR[i].port = HAL_ADC_CHANNEL_OPEN_7;
+ break;
+ case 1:
+ FSR[i].port = HAL_ADC_CHANNEL_OPEN_6;
+ break;
+ case 2:
+ FSR[i].port = HAL_ADC_CHANNEL_OPEN_5;
+ break;
+ case 3:
+ FSR[i].port = HAL_ADC_CHANNEL_OPEN_4;
+ break;
+ case 4:
+ FSR[i].port = HAL_ADC_CHANNEL_OPEN_3;
+ break;
+ case 5:
+ FSR[i].port = HAL_ADC_CHANNEL_OPEN_2;
+ break;
+ case 6:
+ FSR[i].port = HAL_ADC_CHANNEL_OPEN_1;
+ break;
+ case 7:
+ FSR[i].port = HAL_ADC_CHANNEL_OPEN_0;
+ break;
+ }
+ }
+
+//#ifdef NOBOARD
+
+// FSR_5.port = HAL_ADC_CHANNEL_OPEN_5;
+// FSR_5.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+
+// FSR_4.port = HAL_ADC_CHANNEL_OPEN_4;
+// FSR_4.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+
+// FSR_3.port = HAL_ADC_CHANNEL_OPEN_3;
+// FSR_3.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+
+// FSR_2.port = HAL_ADC_CHANNEL_OPEN_2;
+// FSR_2.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+
+// FSR_1.port = HAL_ADC_CHANNEL_OPEN_1;
+// FSR_1.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+
+// FSR_0.port = HAL_ADC_CHANNEL_OPEN_0;
+// FSR_0.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
+//#endif
+
+// osal_start_timerEx( fsr400_TaskID, CONF_THREE_STATE_EVT, CONF_THREE_STATE_TIMEOUT );
}
/*********************************************************************
@@ -114,9 +136,7 @@
switch ( events )
{
case CONF_THREE_STATE_EVT:
-// HAL_TURN_ON_LED2();
osal_set_event( fsr400_TaskID, CONVERTING_EVT); //NOBOARD
- printf("\n *** START CONVERTING *** \n");
return (events ^ CONF_THREE_STATE_EVT);
case CONVERTING_EVT:
@@ -135,27 +155,36 @@
{
osal_start_timerEx( fsr400_TaskID, CONVERTING_EVT, SAMPLING_TIMEOUT ); // restart the timer 200ms
- FSR_6.sample = HalAdcRead (FSR_6.port, FSR_6.resolution); //Read in raw voltage signal
- FSR_7.sample = HalAdcRead (FSR_7.port, FSR_7.resolution); //Read in raw voltage signal
-
-#ifdef NOBOARD
- FSR_0.sample = HalAdcRead (FSR_0.port, FSR_0.resolution);
- FSR_1.sample = HalAdcRead (FSR_1.port, FSR_1.resolution);
- FSR_2.sample = HalAdcRead (FSR_2.port, FSR_2.resolution);
- FSR_3.sample = HalAdcRead (FSR_3.port, FSR_3.resolution);
- FSR_4.sample = HalAdcRead (FSR_4.port, FSR_4.resolution);
- FSR_5.sample = HalAdcRead (FSR_5.port, FSR_5.resolution);
-
- printf("%d", FSR_0.sample);
- printf(" %d", FSR_1.sample);
- printf(" %d", FSR_2.sample);
- printf(" %d", FSR_3.sample);
- printf(" %d", FSR_4.sample);
- printf(" %d", FSR_5.sample);
-#endif
-
- printf(" %d", FSR_6.sample);
- printf(" %d\n", FSR_7.sample);
+ printf("\n");
+ for( uint8 i = 0; i<FSR_MAX_CHANNELS; i++ )
+ {
+ FSR[i].sample = HalAdcRead (FSR[i].port, FSR[i].resolution);
+ printf(" %d", FSR[i].sample);
+ }
+
+// FSR_6.sample = HalAdcRead (FSR_6.port, FSR_6.resolution); //Read in raw voltage signal
+// FSR_7.sample = HalAdcRead (FSR_7.port, FSR_7.resolution); //Read in raw voltage signal
+//
+//#ifdef NOBOARD
+// FSR_0.sample = HalAdcRead (FSR_0.port, FSR_0.resolution);
+// FSR_1.sample = HalAdcRead (FSR_1.port, FSR_1.resolution);
+// FSR_2.sample = HalAdcRead (FSR_2.port, FSR_2.resolution);
+// FSR_3.sample = HalAdcRead (FSR_3.port, FSR_3.resolution);
+// FSR_4.sample = HalAdcRead (FSR_4.port, FSR_4.resolution);
+// FSR_5.sample = HalAdcRead (FSR_5.port, FSR_5.resolution);
+
+// printf("%d", FSR_0.sample);
+// printf(" %d", FSR_1.sample);
+// printf(" %d", FSR_2.sample);
+// printf(" %d", FSR_3.sample);
+// printf(" %d", FSR_4.sample);
+// printf(" %d", FSR_5.sample);
+//#endif
+
+// printf(" %d", FSR_6.sample);
+// printf(" %d\n", FSR_7.sample);
+
+ osal_set_event( Application_TaskID, NEW_SAMPLES_READY);
}
/*********************************************************************/
@@ -164,7 +193,8 @@
{
Application_TaskID = TaskID;
- osal_set_event( fsr400_TaskID, CONVERTING_EVT);
+// osal_set_event( fsr400_TaskID, CONVERTING_EVT);
+ osal_start_timerEx( fsr400_TaskID, CONF_THREE_STATE_EVT, CONF_THREE_STATE_TIMEOUT );
}
/*********************************************************************/
@@ -176,4 +206,14 @@
/*********************************************************************/
+uint16 GetSample ( uint8 index )
+{
+ if( index < FSR_MAX_CHANNELS )
+ return FSR[index].sample;
+ else
+ return 0;
+}
+
+/*********************************************************************/
+
#endif //FSR400
Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fsr400.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fsr400.h (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/fsr400.h Thu Apr 24 16:09:16 2014
@@ -9,14 +9,18 @@
* CONSTANTS
*/
+#ifdef NOBOARD
+#define FSR_MAX_CHANNELS 8
+#else
+#define FSR_MAX_CHANNELS 2
+#endif
#define CONF_THREE_STATE_TIMEOUT 20000 //20 seconds
#define SAMPLING_TIMEOUT 200 //200 milliseconds
-
#define CONF_THREE_STATE_EVT 0x0001
#define CONVERTING_EVT 0x0002
-
+#define NEW_SAMPLES_READY 0x0200
/*********************************************************************
* TYPEDEFS
*********************************************************************/
@@ -37,5 +41,6 @@
void Start_Converting ( byte TaskID );
void Samples ( void );
void Stop_Converting ( void );
+uint16 GetSample ( uint8 index );
#endif //FSR400
Added: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.c (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.c Thu Apr 24 16:09:16 2014
@@ -1,0 +1,331 @@
+
+#ifdef POWER
+
+/*********************************************************************
+ * INCLUDES
+ */
+
+#ifdef NOBOARD
+#include "hal_outboard_cfg.h"
+#else
+#include "hal_board_cfg.h"
+#endif
+
+#include "power.h"
+#include "hal_adc.h"
+#include "OSAL_Timers.h"
+#include "OSAL.h"
+#include "OSAL_Tasks.h"
+#include "math.h"
+
+/*********************************************************************
+ * CONSTANTS
+ */
+#define MAX_SAMPLE_VALUE 1024
+
+/*********************************************************************
+ * LOCAL VARIABLES
+ */
+
+byte Power_TaskID;
+byte Power_Application_TaskID = TASK_NO_TASK;
+
+uint32 numberOfSamples;
+uint8 channel;
+SingleSensingConf_t Voltage;
+SingleSensingConf_t Current[CHANNELS_NUMBER];
+
+GlobalSensingConf_t Power[CHANNELS_NUMBER];
+
+/*********************************************************************
+ * @fn Power_Init
+ *
+ * @brief Set the ports in 3-State Mode
+ * Initialize the structures
+ *
+ * @param task_id
+ *
+ * @return none
+ */
+ void Power_Init ( byte task_id )
+{
+ Power_TaskID = task_id;
+
+ //3STATE PORT CONFIG
+ P0INP |= (1<<7); // P0_7 3state mode
+ P0INP |= (1<<6); // P0_6 3state mode
+
+#ifdef NOBOARD
+ //HOW MANY CHANNELS? WHICH?
+// P0INP |= (1<<?); // P0_? 3state mode
+#endif
+
+ //VOLTAGE PORT IS ALWAYS P0_7
+ Voltage.port = HAL_ADC_CHANNEL_OPEN_7;
+ 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) - 1)); // schedina 1
+// Voltage.RATIO = (230.0*11.0/10.45) * (3.3 / ( SetRef(&Voltage) - 1)); // schedina 2
+ // 230.0 : tensione di rete
+ // 11: fattore di scala (100k+10k)/10k
+ // 10.45: tensione nominale del trasformatore
+
+ 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]) - 1))); //schedina 1 CT1
+// Current[i].RATIO = ( ( 2000.0 / 101.5 ) * (3.3 / ( SetRef(&Current[i]) - 1))); //schedina 1 CT2
+ Current[i].RATIO = ( 19.07 /*( 2000.0 / 114.0 )*/ * (3.3 / ( SetRef(&Current[i]) - 1))); //schedina 2 CT1
+// Current[i].RATIO = ( 16.17 /*( 2000.0 / 120.0 )*/ * (3.3 / ( SetRef(&Current[i]) - 1))); //schedina 3 CT1
+ // 2000: fattore di trasformazione del trasformatore
+ // 114: resistenza di burden
+ switch(i)
+ {
+ case 0:
+ Current[i].port = HAL_ADC_CHANNEL_OPEN_6;
+ break;
+
+ default:
+ break;
+ }
+
+ Power[i].instP = 0;
+ Power[i].sumP = 0;
+ Power[i].realPower = 0;
+ Power[i].energy = 0;
+ }
+
+ numberOfSamples = 0;
+ channel = 0;
+
+}
+
+/*********************************************************************
+ * @fn Power_EventLoop
+ *
+ * @brief Sensing Task event processor. This function
+ * is called to process all events for the task.
+ *
+ * @param task_id - The OSAL assigned task ID.
+ * @param events - events to process. This is a bit map and can
+ * contain more than one event.
+ *
+ * @return none
+ */
+
+UINT16 Power_EventLoop( byte task_id, UINT16 events )
+{
+ switch ( events )
+ {
+ case READINGS_EVT:
+ Readings();
+ return (events ^ READINGS_EVT);
+
+ case FINISH_READINGS_BLOCK_EVT:
+ Finish_Readings ();
+ return (events ^ FINISH_READINGS_BLOCK_EVT);
+
+ case SAMPLE_PROCESSING_EVT:
+ Sample_Processing ();
+ return (events ^ SAMPLE_PROCESSING_EVT);
+
+ default:
+ return 0; // Discard unknown events
+ }
+}
+
+/*********************************************************************
+ * @fn Readings
+ *
+ * @brief
+ *
+ * @param none
+ *
+ * @return none
+ */
+
+void Readings ( void )
+{
+ osal_start_timerEx( Power_TaskID, READINGS_EVT, SAMPLING_TIMEOUT ); // restart the timer 37ms
+
+ if ( numberOfSamples < MAX_VALUES )
+ {
+ Current[channel].sample = HalAdcRead ( Current[channel].port, Current[channel].resolution );
+ Voltage.sample = HalAdcRead ( Voltage.port, Voltage.resolution );
+
+ numberOfSamples++; //Count number of times looped.
+
+ osal_set_event( Power_TaskID, SAMPLE_PROCESSING_EVT );
+
+ }
+ else
+ {
+// osal_stop_timerEx( Power_TaskID, READINGS_EVT );
+ numberOfSamples = 0;
+ osal_set_event( Power_TaskID, FINISH_READINGS_BLOCK_EVT );
+ }
+}
+/*********************************************************************/
+
+void Sample_Processing ( void )
+{
+ float zero = zeroVolt( &Voltage );
+ Voltage.filtered = ((float)Voltage.sample - zero);
+ Voltage.sq= Voltage.filtered * Voltage.filtered; //1) square voltage values
+ Voltage.sum += Voltage.sq; //2) sum
+
+ zero = zeroAmp( &Current[channel] );
+ Current[channel].filtered = ((float)Current[channel].sample - zero);
+ Current[channel].sq= Current[channel].filtered * Current[channel].filtered; //1) square voltage values
+ Current[channel].sum += Current[channel].sq; //2) sum
+
+ Power[channel].instP = Voltage.filtered * Current[channel].filtered;
+ Power[channel].sumP += Power[channel].instP;
+
+}
+
+/*********************************************************************/
+
+void Finish_Readings ( void )
+{
+ Voltage.RMS = ( Voltage.RATIO * sqrt( Voltage.sum / MAX_VALUES ));
+ Current[channel].RMS = ( Current[channel].RATIO * sqrt( Current[channel].sum / MAX_VALUES ));
+ Power[channel].realPower = Voltage.RATIO * Current[channel].RATIO * ( Power[channel].sumP / MAX_VALUES );
+
+ if( Power[channel].realPower < 0 )
+ Power[channel].realPower = 0;
+
+ Power[channel].energy += ( Power[channel].realPower * 0.00174722 ); // (170 * 37ms)/3600s = Wattora
+
+// osal_set_event( Power_Application_TaskID, NEW_READY_SAMPLES_EVT );
+ Power_SendMsg();
+
+ Power[channel].sumP = 0;
+ Current[channel].sum = 0;
+ Voltage.sum = 0;
+
+#ifdef NOBOARD
+ if ( channel < (CHANNELS_NUMBER-1) )
+ channel++;
+ else
+ channel = 0;
+#endif
+
+}
+
+/*********************************************************************/
+
+float zeroVolt ( SingleSensingConf_t* Target )
+{
+ const uint16 fastDecay = 16;
+ const uint16 slowDecay = 1024;
+
+ if (Target->sample > Target->posPeak)
+ Target->posPeak += ((Target->sample - Target->posPeak )/fastDecay);
+ else
+ Target->posPeak += ((Target->sample - Target->posPeak )/slowDecay);
+
+ if (Target->sample < Target->negPeak )
+ Target->negPeak += ((Target->sample - Target->negPeak )/fastDecay);
+ else
+ Target->negPeak += ((Target->sample - Target->negPeak )/slowDecay);
+
+ return ((Target->posPeak + Target->negPeak) / 2);
+}
+
+/*********************************************************************/
+
+float zeroAmp ( SingleSensingConf_t* Target )
+{
+ const uint16 fastDecay = 16;
+ const uint16 slowDecay = 1024;
+ const uint16 threshold = 10;
+
+ if (Target->sample > Target->posPeak )
+ Target->posPeak += ((Target->sample - Target->posPeak )/fastDecay);
+ else
+ Target->posPeak += ((Target->sample - Target->posPeak )/slowDecay);
+
+ if (Target->sample < Target->negPeak )
+ Target->negPeak += ((Target->sample - Target->negPeak )/fastDecay);
+ else
+ Target->negPeak += ((Target->sample - Target->negPeak )/slowDecay);
+
+ if (( Target->zero < Target->negPeak)
+ || (Target->zero > Target->posPeak )
+ || ((Target->posPeak - Target->negPeak) < threshold))
+ Target->zero = ((Target->posPeak + Target->negPeak) / 2);
+
+ return Target->zero;
+}
+/*********************************************************************/
+
+float SetRef ( SingleSensingConf_t* Target )
+{
+ float calc = 0;
+ switch ( Target -> resolution )
+ {
+ case HAL_ADC_RESOLUTION_OPEN_7:
+ calc = (float)pow(2,7);
+ break;
+
+ case HAL_ADC_RESOLUTION_OPEN_9:
+ calc = (float)pow(2,9);
+ break;
+
+ case HAL_ADC_RESOLUTION_OPEN_10:
+ calc = (float)pow(2,10);
+ break;
+
+ case HAL_ADC_RESOLUTION_OPEN_12:
+ calc = (float)pow(2,12);
+ break;
+
+ }
+
+ return calc;
+}
+
+/*********************************************************************/
+uint8 static Power_SendMsg ( void )
+{
+ powerIncomingMsg_t *pCmd;
+
+ if ( Power_Application_TaskID == TASK_NO_TASK )
+ return ( TRUE );
+
+ pCmd = (powerIncomingMsg_t *)osal_msg_allocate( sizeof ( powerIncomingMsg_t ) );
+
+ if ( pCmd != NULL )
+ {
+ // fill in the message
+ pCmd->hdr.event = POWER_INCOMING_MSG;
+ pCmd->channel = channel;
+ pCmd->energy = Power[channel].energy;
+ pCmd->IRMS = Current[channel].RMS;
+ pCmd->VRMS = Voltage.RMS;
+ pCmd->realPower = Power[channel].realPower;
+
+ /* send message through task message */
+ osal_msg_send( Power_Application_TaskID, (uint8 *)pCmd );
+ }
+
+ return ( TRUE );
+}
+
+/*********************************************************************/
+void Power_Start_Reading ( byte TaskID )
+{
+ Power_Application_TaskID = TaskID;
+
+ osal_set_event( Power_TaskID, READINGS_EVT);
+}
+
+/*********************************************************************/
+
+
+#endif
Added: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.h (added)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/power.h Thu Apr 24 16:09:16 2014
@@ -1,0 +1,90 @@
+
+#ifdef POWER
+
+/*********************************************************************
+ * INCLUDES
+ */
+
+#include "ZComDef.h"
+#include "OSAL.h"
+
+/*********************************************************************
+ * CONSTANTS
+ */
+
+#ifdef NOBOARD
+#define CHANNELS_NUMBER 2 //HOW MANY CHANNELS?
+#else
+#define CHANNELS_NUMBER 1
+#endif
+
+#define CHANNEL0 0x00
+
+#define MAX_VALUES 170
+
+#define CONF_THREE_STATE_TIMEOUT 25000 //25 seconds
+#define SAMPLING_TIMEOUT 37 //37 milliseconds
+
+#define READINGS_EVT 0x0002
+#define SAMPLE_PROCESSING_EVT 0x0003
+#define FINISH_READINGS_BLOCK_EVT 0x0004
+
+#define CONF_THREE_STATE_EVT 0x0200
+
+#define POWER_INCOMING_MSG 0xE1
+/*********************************************************************
+ * VARIABLES
+ */
+
+/*********************************************************************
+ * TYPEDEFS
+ *********************************************************************/
+
+typedef struct
+{
+ uint8 port; //sensing port
+ uint8 resolution; //adc resolution
+ uint16 sample;
+ float sum;
+ float sq;
+ float RATIO;
+ float RMS;
+ float filtered;
+ float posPeak;
+ float negPeak;
+ float zero;
+}SingleSensingConf_t;
+
+typedef struct
+{
+ float instP;
+ double sumP;
+ float realPower;
+ double energy;
+}GlobalSensingConf_t;
+
+typedef struct
+{
+ osal_event_hdr_t hdr; // OSAL header
+ uint8 channel; // which channel
+ double energy;
+ float IRMS;
+ float VRMS;
+ float realPower;
+}powerIncomingMsg_t;
+/*********************************************************************
+ * FUNCTIONS
+ */
+
+extern void Power_Init ( byte task_id );
+extern UINT16 Power_EventLoop( byte task_id, UINT16 events );
+void Readings ( void );
+float SetRef ( SingleSensingConf_t* Target );
+void Power_Start_Reading ( byte TaskID );
+void Finish_Readings ( void );
+void Sample_Processing ( void );
+float zeroVolt ( SingleSensingConf_t* Target );
+float zeroAmp ( SingleSensingConf_t* Target );
+uint8 static Power_SendMsg ( void );
+
+#endif //POWER
Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/sensing_POT.c
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/sensing_POT.c (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/sensing_POT.c Thu Apr 24 16:09:16 2014
@@ -5,7 +5,11 @@
* INCLUDES
*/
+#ifdef NOBOARD
+#include "hal_outboard_cfg.h"
+#else
#include "hal_board_cfg.h"
+#endif
#include "sensing_POT.h"
#include "hal_adc.h"
@@ -17,28 +21,20 @@
* CONSTANTS
*/
#define MAX_SAMPLE_VALUE 1024
+
/*********************************************************************
* LOCAL VARIABLES
*/
byte Sensing_POT_TaskID;
-byte Application_TaskID;
+byte Power_Application_TaskID;
uint32 numberOfSamples;
-
+uint8 channel;
SingleSensingConf_t Voltage;
-SingleSensingConf_t Current;
-
-float instP;
-double sumP;
-float realPower;
-
-float posPeak_V = (MAX_SAMPLE_VALUE-1);
-float negPeak_V = 0;
-
-float posPeak_I = MAX_SAMPLE_VALUE/2;
-float negPeak_I = MAX_SAMPLE_VALUE/2;
-float zero_I = MAX_SAMPLE_VALUE/2;
+SingleSensingConf_t Current[CHANNELS_NUMBER];
+
+GlobalSensingConf_t Power[CHANNELS_NUMBER];
/*********************************************************************
* @fn Sensing_POT_Init
@@ -58,22 +54,50 @@
P0INP |= (1<<7); // P0_7 3state mode
P0INP |= (1<<6); // P0_6 3state mode
+#ifdef NOBOARD
+ //HOW MANY CHANNELS? WHICH?
+// P0INP |= (1<<?); // P0_? 3state mode
+#endif
+
+ //VOLTAGE PORT IS ALWAYS P0_7
Voltage.port = HAL_ADC_CHANNEL_OPEN_7;
Voltage.resolution = HAL_ADC_RESOLUTION_OPEN_10;
-// Voltage.RATIO = (230.0*11.0/10.9) * (3.3 / ( SetRef(&Voltage) - 1)); // 230*11/10.9
- Voltage.RATIO = (230.0*11.0/10.45) * (3.3 / ( SetRef(&Voltage) - 1)); // 230*11/10.9
+ Voltage.posPeak = (MAX_SAMPLE_VALUE-1);
+ Voltage.negPeak = 0;
+ Voltage.RATIO = (230.0*11.0/10.85) * (3.3 / ( SetRef(&Voltage) - 1)); // schedina 1
+// Voltage.RATIO = (230.0*11.0/10.45) * (3.3 / ( SetRef(&Voltage) - 1)); // schedina 2
// 230.0 : tensione di rete
// 11: fattore di scala (100k+10k)/10k
// 10.45: tensione nominale del trasformatore
- Current.port = HAL_ADC_CHANNEL_OPEN_6;
- Current.resolution = HAL_ADC_RESOLUTION_OPEN_10 ;
-// Current.RATIO = ( ( 2000.0 / 96.0 ) * (3.3 / ( SetRef(&Current) - 1)));
- Current.RATIO = ( ( 2000.0 / 114.0 ) * (3.3 / ( SetRef(&Current) - 1)));
+ 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]) - 1))); //schedina 1 CT1
+ Current[i].RATIO = ( ( 2000.0 / 101.5 ) * (3.3 / ( SetRef(&Current[i]) - 1))); //schedina 1 CT2
+// Current[i].RATIO = ( ( 2000.0 / 114.0 ) * (3.3 / ( SetRef(&Current[i]) - 1))); //schedina 2 CT1
// 2000: fattore di trasformazione del trasformatore
// 114: resistenza di burden
+ switch(i)
+ {
+ case 0:
+ Current[i].port = HAL_ADC_CHANNEL_OPEN_6;
+ break;
+
+ default:
+ break;
+ }
+
+ Power[i].instP = 0;
+ Power[i].sumP = 0;
+ Power[i].realPower = 0;
+ }
numberOfSamples = 0;
+ channel = 0;
// osal_start_timerEx( Sensing_POT_TaskID, CONF_THREE_STATE_EVT, CONF_THREE_STATE_TIMEOUT );
}
@@ -132,10 +156,10 @@
if ( numberOfSamples < MAX_VALUES )
{
- Current.sample = HalAdcRead ( Current.port, Current.resolution );
+ Current[channel].sample = HalAdcRead ( Current[channel].port, Current[channel].resolution );
Voltage.sample = HalAdcRead ( Voltage.port, Voltage.resolution );
-
- numberOfSamples++; //Count number of times looped.
+
+ numberOfSamples++; //Count number of times looped.
osal_set_event( Sensing_POT_TaskID, SAMPLE_PROCESSING_EVT );
@@ -151,19 +175,19 @@
void Sample_Processing ( void )
{
- float zero = zeroVolt( Voltage.sample );
+ float zero = zeroVolt( &Voltage );
Voltage.filtered = ((float)Voltage.sample - zero);
Voltage.sq= Voltage.filtered * Voltage.filtered; //1) square voltage values
Voltage.sum += Voltage.sq; //2) sum
- zero = zeroAmp( Current.sample );
- Current.filtered = ((float)Current.sample - zero);
- Current.sq= Current.filtered * Current.filtered; //1) square voltage values
- Current.sum += Current.sq; //2) sum
-
- instP = Voltage.filtered * Current.filtered;
- sumP +=instP;
-
+ zero = zeroAmp( &Current[channel] );
+ Current[channel].filtered = ((float)Current[channel].sample - zero);
+ Current[channel].sq= Current[channel].filtered * Current[channel].filtered; //1) square voltage values
+ Current[channel].sum += Current[channel].sq; //2) sum
+
+ Power[channel].instP = Voltage.filtered * Current[channel].filtered;
+ Power[channel].sumP += Power[channel].instP;
+
}
/*********************************************************************/
@@ -171,65 +195,68 @@
void Finish_Readings ( void )
{
Voltage.RMS = ( Voltage.RATIO * sqrt( Voltage.sum / MAX_VALUES ));
- Current.RMS = ( Current.RATIO * sqrt( Current.sum / MAX_VALUES ));
- realPower = Voltage.RATIO * Current.RATIO * (sumP / MAX_VALUES );
-
- osal_set_event( Application_TaskID, NEW_READY_SAMPLES_EVT );
-
- sumP = 0;
- Current.sum = 0;
+ Current[channel].RMS = ( Current[channel].RATIO * sqrt( Current[channel].sum / MAX_VALUES ));
+ Power[channel].realPower = Voltage.RATIO * Current[channel].RATIO * (Power[channel].sumP / MAX_VALUES );
+
+ osal_set_event( Power_Application_TaskID, NEW_READY_SAMPLES_EVT );
+
+ Power[channel].sumP = 0;
+ Current[channel].sum = 0;
Voltage.sum = 0;
-}
-
-/*********************************************************************/
-
-float zeroVolt ( uint16 sample )
+
+#ifdef NOBOARD
+ if ( channel < (CHANNELS_NUMBER-1) )
+ channel++;
+ else
+ channel = 0;
+#endif
+
+}
+
+/*********************************************************************/
+
+float zeroVolt ( SingleSensingConf_t* Target )
{
const uint16 fastDecay = 16;
const uint16 slowDecay = 1024;
-// static float posPeak = (MAX_SAMPLE_VALUE-1);
-// static float negPeak = 0;
-
- if (sample > posPeak_V)
- posPeak_V += ((sample-posPeak_V)/fastDecay);
- else
- posPeak_V += ((sample-posPeak_V)/slowDecay);
+
+ if (Target->sample > Target->posPeak)
+ Target->posPeak += ((Target->sample - Target->posPeak )/fastDecay);
+ else
+ Target->posPeak += ((Target->sample - Target->posPeak )/slowDecay);
- if (sample < negPeak_V)
- negPeak_V += ((sample-negPeak_V)/fastDecay);
- else
- negPeak_V += ((sample-negPeak_V)/slowDecay);
-
- return ((posPeak_V + negPeak_V) / 2);
-}
-
-/*********************************************************************/
-
-float zeroAmp ( uint16 sample )
+ if (Target->sample < Target->negPeak )
+ Target->negPeak += ((Target->sample - Target->negPeak )/fastDecay);
+ else
+ Target->negPeak += ((Target->sample - Target->negPeak )/slowDecay);
+
+ return ((Target->posPeak + Target->negPeak) / 2);
+}
+
+/*********************************************************************/
+
+float zeroAmp ( SingleSensingConf_t* Target )
{
const uint16 fastDecay = 16;
const uint16 slowDecay = 1024;
const uint16 threshold = 10;
-// static float posPeak = MAX_SAMPLE_VALUE/2;
-// static float negPeak = MAX_SAMPLE_VALUE/2;
-// static float zero = MAX_SAMPLE_VALUE/2;
-
- if (sample > posPeak_I)
- posPeak_I += ((sample-posPeak_I)/fastDecay);
- else
- posPeak_I += ((sample-posPeak_I)/slowDecay);
+
+ if (Target->sample > Target->posPeak )
+ Target->posPeak += ((Target->sample - Target->posPeak )/fastDecay);
+ else
+ Target->posPeak += ((Target->sample - Target->posPeak )/slowDecay);
- if (sample < negPeak_I)
- negPeak_I += ((sample-negPeak_I)/fastDecay);
- else
- negPeak_I += ((sample-negPeak_I)/slowDecay);
-
- if ((zero_I < negPeak_I)
- || (zero_I > posPeak_I)
- || ((posPeak_I - negPeak_I) < threshold))
- zero_I = ((posPeak_I + negPeak_I) / 2);
+ if (Target->sample < Target->negPeak )
+ Target->negPeak += ((Target->sample - Target->negPeak )/fastDecay);
+ else
+ Target->negPeak += ((Target->sample - Target->negPeak )/slowDecay);
+
+ if (( Target->zero < Target->negPeak)
+ || (Target->zero > Target->posPeak )
+ || ((Target->posPeak - Target->negPeak) < threshold))
+ Target->zero = ((Target->posPeak + Target->negPeak) / 2);
- return zero_I;
+ return Target->zero;
}
/*********************************************************************/
@@ -263,7 +290,7 @@
void Start_Reading ( byte TaskID )
{
- Application_TaskID = TaskID;
+ Power_Application_TaskID = TaskID;
osal_set_event( Sensing_POT_TaskID, READINGS_EVT);
}
@@ -277,9 +304,9 @@
/*********************************************************************/
-float GetRealPower ( void )
-{
- return realPower;
+float GetRealPower ( uint8 index )
+{
+ return Power[index].realPower;
}
/*********************************************************************/
Modified: projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/sensing_POT.h
==============================================================================
--- projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/sensing_POT.h (original)
+++ projects/zb4osgi/members/firmware/open2530/sources/ZStack/Target_OPEN2530/sensing_POT.h Thu Apr 24 16:09:16 2014
@@ -10,6 +10,13 @@
/*********************************************************************
* CONSTANTS
*/
+
+#ifdef NOBOARD
+#define CHANNELS_NUMBER 2 //HOW MANY CHANNELS?
+#else
+#define CHANNELS_NUMBER 1
+#endif
+
#define MAX_VALUES 170
#define CONF_THREE_STATE_TIMEOUT 25000 //25 seconds
@@ -40,8 +47,17 @@
float RATIO;
float RMS;
float filtered;
+ float posPeak;
+ float negPeak;
+ float zero;
}SingleSensingConf_t;
+typedef struct
+{
+ float instP;
+ double sumP;
+ float realPower;
+}GlobalSensingConf_t;
/*********************************************************************
* FUNCTIONS
@@ -55,8 +71,8 @@
void Finish_Readings ( void );
void Sample_Processing ( void );
float GetRMS ( SingleSensingConf_t* Target );
-float GetRealPower ( void );
-float zeroVolt ( uint16 sample );
-float zeroAmp ( uint16 sample );
+float GetRealPower ( uint8 index );
+float zeroVolt ( SingleSensingConf_t* Target );
+float zeroAmp ( SingleSensingConf_t* Target );
#endif //SENSING_POT
More information about the Commit
mailing list