没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
因为 SampleApp 涉及到传感器和上位机,没有实验设备,所以我先以 SimpleApp 为模
板介绍一下实验大体流程!
我做的实验基于 zigbee 提供的例程,最大的特点,例程本身就已经建立了一个任务,
所以我们只需要在这个任务上来实现自己的实验目标~
SimpleApp:
所有函数都是从主函数开始,我们从主函数开始看,大体上就是十来个各种初始化函数 ,
其中注意一个 osal_start_system(),这是个大循环函数,一旦程序进入,就不会再出来了,
进行不停的循环工作,可能这就是轮询式操作系统的特点吧!
就我所了 解 的 情况来说 , 接 着是建立任务 , 从 函数中 sapi.c 找到任务 添 加 函数
osalAddTasks(),这个函数的功能就是为系统添加一个新的任务;
任务建立好之后,还要进行定义和一系列初始化,找到 SAPI_Init( byte task_id ),可以
看到系统为他分配 ID,注册按键函数,事件启动函数等等~
我们以点灯实验来说,要用到协调器和终端,说明几个需要改动的函数和程序:
1,#define NUM_OUT_CMD_CONTROLLER 0
#define NUM_IN_CMD_CONTROLLER 1
这两条程序的意思是定义了协调器输入输出端口的个数,对协调器来说,这个实验中,
对协调器只需要输入,而且只有一条信标(后面解释),没有输出,所以定义为 0 和 1,
如果你要进行多输入多输出是,这上面的数值要进行改动~
2,const cId_t zb_InCmdList[NUM_IN_CMD_CONTROLLER] =
{
TOGGLE_LIGHT_CMD_ID,
};
这个是输入信标定义,因为对协调器而言只有输入,看清楚 const cId_t zb_InCmdList
是输入列表,那 TOGGLE_LIGHT_CMD_ID 是什么意思呢,是信标的意思!就是消息
传 递 和 接 收 的 标 志 , 因 为 在 终 端 会 发 出 按 键 的 命 令 同 样 命 名 为
TOGGLE_LIGHT_CMD_ID,所以在接收端,他们才能进行匹配从而获得正确的信息!所
以终端和协调器的信标一定要正确~
3,const SimpleDescriptionFormat_t zb_SimpleDesc =
{
MY_ENDPOINT_ID, // Endpoint
MY_PROFILE_ID, // Profile ID
DEV_ID_CONTROLLER, // Device ID
DEVICE_VERSION_CONTROLLER, // Device Version
0, // Reserved
NUM_IN_CMD_CONTROLLER, // Number of Input Commands
(cId_t *) zb_InCmdList, // Input Command List
NUM_IN_CMD_CONTROLLER, // Number of Input Commands
(cId_t *) zb_InCmdList,
// Output Command List
};
这个是对设备的综合描述,输入命令(信标)和输出命令(信标)都要写清楚,如果
没有输出命令也可以不要写~
4,void zb_HandleOsalEvent( uint16 event ){}
资源评论
- liangweichao882013-01-19点入门级经验
zcc19880624
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功