• 5.zigbee的开发,串口putchar重定向(使用print),单播实验,usb抓包实验


    一。实验:单播

    实验要求:

    实现终端定时向协调器发送给“好好学习”字符串,并且从终端打印出来。

    要求:  

    指定端点为 0x0005            

    指定簇为     0x0003

    1.进入应用层SampleApp.c中,串口的重定向

    报错:函数没有原型

    解决:

    2.设置为单播模式

    查找方法:通过右键进入定义去寻找

    Addr16Bit

    3.指定断电修改为5

    4.以下两个是终端节点协调器节点的数据处理

    1. void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
    2. {
    3. uint16 flashTime;
    4. uint8 buf[] = "\r\n";
    5. switch ( pkt->clusterId )
    6. {
    7. //写数据
    8. case SAMPLEAPP_PERIODIC_CLUSTERID:
    9. HalUARTWrite(0,pkt->cmd.Data,pkt->cmd.DataLength);
    10. HalUARTWrite(0,buf,strlen(buf));
    11. break;
    12. case SAMPLEAPP_FLASH_CLUSTERID:
    13. flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );
    14. HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );
    15. break;
    16. }
    17. }

    1. void SampleApp_SendPeriodicMessage( void )
    2. {
    3. //数据
    4. uint8 buf[] = "天天向上";
    5. if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,
    6. SAMPLEAPP_PERIODIC_CLUSTERID,
    7. strlen(buf) + 1,
    8. buf,
    9. &SampleApp_TransID,
    10. AF_DISCV_ROUTE,
    11. AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
    12. {
    13. }
    14. else
    15. {
    16. // Error occurred in request to send.
    17. }
    18. }

    5.进行实验:

    (1)选择协调器节点,烧录到协调器中

    (2)选择终端节点,烧录到终端中

    结果:

    二。抓包分析

    需要usb串口抓包工具

    1.程序

    三。广播

    1.协调器模块作为协调器

    2.风扇节点作为路由器

    3.温湿度节点作为终端节点

    在应用层修改,针对各个节点(终端节点,协调器节点,路由节点)区分处理(switch)

    应用层

    节点封装层

    四。组播,mac地址通信

            组播是一种网络通信方式,用于将数据包从一个源主机发送到一个或多个目的主机。在组播通信中,源主机只需发送一次数据包,而目的主机可以是一个或多个。组播可以有效地减少网络带宽的使用,因为只有那些对数据包感兴趣的目的主机才会接收它。

            在计算机网络中,MAC地址(Media Access Control address)是用于唯一标识网络设备的硬件地址MAC地址是一个48位的二进制数,通常以十六进制表示。每个网络设备都会有一个唯一的MAC地址。

            MAC地址在局域网中起到了重要的作用,它被用来在同一局域网内进行数据传输和通信。当数据需要从一个设备传输到另一个设备时,发送设备会将数据包封装,并加上目标设备的MAC地址作为目的地。交换机或路由器会根据目的MAC地址将数据包转发到目标设备。

    当设备从网络上接收数据时,它会检查数据包中的目的MAC地址,如果与自己的MAC地址匹配,则接收该数据包并处理;否则,将其丢弃。

  • 相关阅读:
    中文小样本NER模型方法总结和实战
    GitBook生成电子书并发布到GitHub Pages
    bamboo is currently exporting
    ODrive移植keil(四)—— PWM触发ADC采样
    如何在IntellJ IDEA中批量修改文件换行符
    [实时流基础 flink] 窗口
    license授权方案
    Mysql在ubuntu22.04上安装配置
    初等数论学习笔记 III:数论函数与筛法
    Day1:数据结构&算法之顺序表
  • 原文地址:https://blog.csdn.net/m0_61659911/article/details/132969904