TI中文支持网
TI专业的中文技术问题搜集分享网站

ZLL做冷暖灯

HI:

我打算用Z-Stack Lighting做冷暖灯,有一些疑问,

1、我应该在哪里去设置我的设备ID ,改为Color temperature light

2、因冷暖灯只需两路PWM,而Zlight默认为4路,我应该用RGBW中的哪2路呢

VV:

1, 对的,就是Color temperature light

2, 具体选择那两路没有关系,看你的实际硬件接口

zheng wei tang:

回复 VV:

HI VV,

我应该在Z-STACK的哪里去修改呢,

1、我并不知道Device ID在协议栈的哪个位置

2、在zll_simplelight_data.c中有一些宏

uint8 zclColor_ColorMode = COLOR_MODE_CURRENT_X_Y;uint8 zclColor_EnhancedColorMode = ENHANCED_COLOR_MODE_CURRENT_HUE_SATURATION;uint16 zclColor_ColorCapabilities = ( COLOR_CAPABILITIES_ATTR_BIT_HUE_SATURATION | COLOR_CAPABILITIES_ATTR_BIT_ENHANCED_HUE | COLOR_CAPABILITIES_ATTR_BIT_COLOR_LOOP | COLOR_CAPABILITIES_ATTR_BIT_X_Y_ATTRIBUTES );

是需要修改这些内容吗

3、我是不是也应该通过配置一些内容来告诉协议栈我用的哪两个PWM,并且哪个是冷光哪个是暖光

VV:

回复 zheng wei tang:

1,

// Zigbee Light Link Profile Identification#define ZLL_PROFILE_ID 0xc05e

// ZLL Basic Lighting Device IDs#define ZLL_DEVICEID_ON_OFF_LIGHT 0x0000#define ZLL_DEVICEID_ON_OFF_PLUG_IN_UNIT 0x0010#define ZLL_DEVICEID_DIMMABLE_LIGHT 0x0100#define ZLL_DEVICEID_DIMMABLE_PLUG_IN_UNIT 0x0110

// ZLL Color Lighting Device IDs#define ZLL_DEVICEID_COLOR_LIGHT 0x0200#define ZLL_DEVICEID_EXTENDED_COLOR_LIGHT 0x0210#define ZLL_DEVICEID_COLOR_TEMPERATURE_LIGHT 0x0220

// ZLL Lighting Remotes Device IDs#define ZLL_DEVICEID_COLOR_CONTORLLER 0x0800#define ZLL_DEVICEID_COLOR_SCENE_CONTROLLER 0x0810#define ZLL_DEVICEID_NON_COLOR_CONTORLLER 0x0820#define ZLL_DEVICEID_NON_COLOR_SCENE_CONTROLLER 0x0830#define ZLL_DEVICEID_CONTROL_BRIDGE 0x0840#define ZLL_DEVICEID_ON_OFF_SENSOR 0x0850

2,

这些是针对RGB的灯的,如果只是单色的色温灯,就不需要了

3, 当然

zheng wei tang:

回复 VV:

void zclColor_init( byte taskID); void zclColor_process( uint16 *events );

void zclColor_processColorLoop( uint16 *events );

ZStatus_t zclColor_MoveToColorCB( zclCCMoveToColor_t *pCmd );

void zclColor_MoveColorCB( zclCCMoveColor_t *pCmd );

 ZStatus_t zclColor_StepColorCB( zclCCStepColor_t *pCmd );

 ZStatus_t zclColor_MoveToSaturationCB( zclCCMoveToSaturation_t *pCmd );

 ZStatus_t zclColor_MoveSaturationCB( zclCCMoveSaturation_t *pCmd );

ZStatus_t zclColor_StepSaturationCB( zclCCStepSaturation_t *pCmd );

 ZStatus_t zclColor_MoveToHueCB( zclCCMoveToHue_t *pCmd );

 ZStatus_t zclColor_MoveHueCB( zclCCMoveHue_t *pCmd );

ZStatus_t zclColor_StepHueCB( zclCCStepHue_t *pCmd );

ZStatus_t zclColor_MoveToHueAndSaturationCB( zclCCMoveToHueAndSaturation_t *pCmd );

 ZStatus_t zclColor_StopCB( void );

 ZStatus_t zclColor_EnhMoveToHueCB( zclCCEnhancedMoveToHue_t *pCmd );

 ZStatus_t zclColor_MoveEnhHueCB( zclCCEnhancedMoveHue_t *pCmd );

ZStatus_t zclColor_StepEnhHueCB( zclCCEnhancedStepHue_t *pCmd );

 ZStatus_t zclColor_MoveToEnhHueAndSaturationCB( zclCCEnhancedMoveToHueAndSaturation_t *pCmd );

ZStatus_t zclColor_SetColorLoopCB( zclCCColorLoopSet_t *pCmd );

1、在协议栈中并没有ZLL标准定义的MoveToColorTemprature/MoveColorTemprature/StepColorTemprature等函数,是要自己去实现吗?

VV:

回复 zheng wei tang:

接口函数是有的

zclLighting_ProcessInCmd_ColorControl_MoveToColorTemperature 

你可以自己定义callback函数做处理。

zheng wei tang:

回复 VV:

ZLight 每15秒都会广播一条命令,请问这条命令是哪个层哪个任务广播的,有什么作用呢

VV:

回复 zheng wei tang:

这个每隔15s一条发出来的是Link Status消息,只有Coordinator和Router会发这个消息,主要目的是用于维护邻居表的,这个消息是广播发送的,但是广播半径=1,也就是其他节点收到了,也不会转发。能够收到的节点,就认为自己在它的邻居范围内,保存在邻居表里面去了。

如果一个节点连续几次没有收到邻居节点的Link status,那么认为这个邻居节点已经断了,或者不存在了,之后在发数据的时候可能就不通过该邻居节点发了,或者有数据要发给该邻居节点的时候,就需要通过路由发现,先找到这个节点了。

 

TI的协议栈的软件实现,完全按照标准的ZigBee Specification文档来的。所以你们也可以参考下ZigBee Specification,全文搜索Link Status就可以了。

user6001915:

回复 zheng wei tang:

请问你成功加入了色温调节吗?

赞(0)
未经允许不得转载:TI中文支持网 » ZLL做冷暖灯
分享到: 更多 (0)