当前位置: 首页 > news >正文

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

一。实验:单播

实验要求:

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

要求:  

指定端点为 0x0005            

指定簇为     0x0003

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

报错:函数没有原型

解决:

2.设置为单播模式

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

Addr16Bit

3.指定断电修改为5

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

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{uint16 flashTime;uint8 buf[] = "\r\n";switch ( pkt->clusterId ){//写数据case SAMPLEAPP_PERIODIC_CLUSTERID:HalUARTWrite(0,pkt->cmd.Data,pkt->cmd.DataLength);HalUARTWrite(0,buf,strlen(buf));break;case SAMPLEAPP_FLASH_CLUSTERID:flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );break;}
}

void SampleApp_SendPeriodicMessage( void )
{//数据uint8 buf[] = "天天向上";if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc,SAMPLEAPP_PERIODIC_CLUSTERID,strlen(buf) + 1,buf,&SampleApp_TransID,AF_DISCV_ROUTE,AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ){}else{// Error occurred in request to send.}
}

5.进行实验:

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

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

结果:

二。抓包分析

需要usb串口抓包工具

1.程序

三。广播

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

2.风扇节点作为路由器

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

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

应用层

节点封装层

四。组播,mac地址通信

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

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

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

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

http://www.lryc.cn/news/169593.html

相关文章:

  • 解决AU报“MME无法使用“问题
  • Maven 安装配置
  • vscode 配置网址
  • git 本地工作区和仓库区基本使用
  • 有效的括号(栈的高频面试题)
  • GIS跟踪监管系统电子围栏
  • 蓝桥杯2023年第十四届省赛真题-买瓜--Java题解
  • Chatbot到底提供了哪些便利?来看看“中文版Chatbase”
  • 2023-09-18 LeetCode每日一题(打家劫舍 III)
  • Python一行代码实现文件共享【内网穿透公网访问】
  • uni-app 之 下拉刷新,上拉加载,获取网络列表数据
  • 笔记1.2 计算机网络结构
  • 使用Ansible Template模块进行配置文件管理
  • Secrets of RLHF in Large Language Models Part I: PPO
  • Java手写AVL树应用拓展案例
  • vue3+ts+uniapp小程序封装获取授权hook函数
  • 绘图(一)弹球小游戏
  • uniapp滑动事件
  • 入门人工智能 —— 学习 python 使用 IDE :vscode 完成编程 (2)
  • MyBatis字段名和属性名不一样的解决方案
  • Postman应用——Collection、Folder和Request
  • 驱动开发,stm32mp157a开发板的led灯控制实验
  • 黑客入侵机构,导致2万条信息被卖
  • 循环购:让消费者和商家共赢的新型电商模式
  • 分布式缓冲-Redis
  • C# 流Stream详解(3)——FileStream源码
  • C语言的文件操作(炒详解)
  • 27.基于ADS的不等分威尔金森功分器设计
  • Linux自用命令
  • clickhouse union all之后数据量不一致