感知层编程实验九
南昌航空大学实验报告
二0二1年11月30日
课程名称: 感知层编程实验 实验名称:p2p通信
指导教师评定: 签名:
实验九 P2P通信
实验目的:
- 初步理解CC2530之间无线通信的实现方法
- 掌握AF_DataRequest()接口的使用
- 提高学生的上机和编程过程中处理具体问题的能力
实验要求:
- 实验要求自己独立的完成;
- 编写和调试过程中出现的问题要做好记录,并事后总结到报告中
- 实验程序调试完成后, 用给定的平台进行测试,由老师检查测试结果,并给予相应的成绩
- 实验完成后,要上交实验报告。
实验内容:
- 使用Z-Stack协议栈开发一个新的应用,利用AF_DataRequest接口实现两者之间的通信功能。
- 两个节点一个作为Coordinator,一个可以是Router也可以是EndDevice;
- Router或EndDevice往Coordinator发送消息,控制Coordinator节点上LED的状态;
- Coordinator接到消息后,改变LED状态,并且返回LED状态到Router或EndDevice。
- 在实验报告中给出设计的功能描述,并给出源码。
实验环境:
集成开发环境为IAR
实验过程:
(1)上述Router或EndDevice上的代码以SampleSwitch为基础
(2)上述Coordinator以SampleLight为基础
(3)修改Config文件中的PANID为自己的学号(班内小号)。比如第28号同学的PANID为:28,其16进制为0x001C
(4)定义一个clusterId,和一个消息包格式
(5)对上述SampleLight和SampleSwitch进行修改,删除所有不需要代码,添加使用AF_DataRequest()函数所需要要的代码
(6)Router或EndDevice在按键后,发出上述自定义的消息
(7)Coordinator收到消息后,根据消息的内容是On、Off、Toggle对LED作出状态切换,并返回其状态到Router或EndDevice.
实验代码:
附录的压缩包。
实验结果:
向两块开发板分别烧入代码后,接通电源让他们配对,连接进行通信,等待连接完成后,按下router端的key1可看到router端的led1由亮变灭(或由灭变亮),接着又可看到enddevice端的led1由亮变灭(或由灭变亮),同理在enddevice端按下key1可看到enddevice端的led2由亮变灭(或由灭变亮),接着又可看到router端的led2由亮变灭(或由灭变亮)。
实验总结:
这次的实验感觉碰到的困难有许多,首先便是得去p2p的工作原理,其次便是与之相关的一些代码看不懂,理解起来很困难,当然最让我头疼的还是文件中一些函数的注释是英文的看不太懂,机翻有的不是很准确,最后解决方法是我通过阅读网上一些相似的代码进行学习,慢慢去摸索。
通过本次实验我初步理解CC2530之间无线通信的实现方法,也初步掌握AF_DataRequest()接口的使用,也让我在cc2530无线通信实验中实现入门。
附录: