在新手刚触z-wave 500系列开发时,对SDK不是很理解的时候,往往容易犯错。特别是在开发电池设备中,定义的数据变量在赋值好后,当设备进入睡眠后数据就被清0,导致数据跟我们设置的不一样,发生了变化。
下面说一下定义数据不睡眠后醒来也会变方法:
首先找到头文件zw_non_zero.h
*---------------------------------------------------------------------------
* File:zw_non_zero.h
* Description: This module define an address range in XRAM reserved for uninitialized variables.
*
* Author: Samer Seoud
*
* Last Changed By: $Author: tro $
* Revision: $Revision: 24134 $
* Last Changed: $Date: 2013-01-25 15:35:56 +0100 (fr, 25 jan 2013) $
*
****************************************************************************/
#ifndef _ZW_NON_ZERO_H_
#define _ZW_NON_ZERO_H_
/****************************************************************************/
/* INCLUDE FILES */
/****************************************************************************/
/****************************************************************************/
/* EXPORTED TYPES and DEFINITIONS */
/****************************************************************************/
#define XDATA_LENGTH 0x1000
#define NON_ZERO_SIZE 64
#define NON_ZERO_START_ADDR 0x1240
#endif /* _ZW_NON_ZERO_H_ */
最后在源文件.C定义变量,如下
XWORD currentHumidityVal _at_(NON_ZERO_START_ADDR+100);
这样就可以使用,在睡眠状态下保存数据