华为配置Wi-Fi终端定位实验

 

配置Wi-Fi终端定位示例

组网图形

图1 配置Wi-Fi终端定位示例组网图
  • 业务需求
  • 组网需求
  • 数据规划
  • 配置思路
  • 配置注意事项
  • 操作步骤
  • 配置文件
业务需求

管理员希望在已有WLAN覆盖业务的基础上,还可以定位覆盖区域内的终端位置信息。使用Wi-Fi终端定位方案,无需新增额外的信息采集点,AP周期性扫描终端信号,并将信息上报给定位服务器,定位服务器根据不同AP上报的信息,计算出终端的具体位置,可以实时在地图上看到终端所在的位置,还可以查询终端的历史移动路径。

WLAN覆盖业务的相关配置参见WLAN基础组网配置举例

组网需求

在网络中新增部署定位服务器,AC需要和服务器网络互通。

配置思路
  1. 安装部署定位服务器。
  2. 配置AC和定位服务器互通。AC要将收到的终端信息发送给服务器,规划IP地址用于通信。
  3. 配置AC的SNMP参数,用于和定位服务器对接。
  4. 配置AC的空口扫描功能。
  5. 配置AC的Wi-Fi终端定位功能。
  6. 配置定位服务器的WLAN定位功能。
配置注意事项

定位使用三点定位技术,为了保证定位的准确度,建议AP间距不要超过15米,覆盖区域的信号强度大于-65dBm,定位准确度好。

在定位服务器上添加AC时,需要配置相同的SNMP协议和读写团体名,才能保证AC和定位服务器间的正常通信。

AP上负载小,业务量不大,建议采用通过AC上报终端信息。如果选择AP直接上报终端信息,则AP要和定位服务器路由可达。

如果定位服务器为iMaster NCE-CampusInsight且通过UDP协议上报数据时,AP上报终端定位的目的地址为CampusInsight南向浮动IP地址,端口号为固定值28161。

操作步骤
  1. 配置AC和定位服务器通信

    # 配置Router,创建VLAN102,加入接口GE1/0/0,配置VLANIF102接口和AC互通。
    <span style="color:#333333"><span style="background-color:#dddddd"><Router> <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b191016524190923">system-view</strong>
    [Router] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b347023258190923">vlan 102</strong>
    [Router-vlan102] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1439372694190923">quit</strong>
    [Router] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b447971466190923">interface gigabitethernet 1/0/0</strong>
    [Router-GigabitEthernet1/0/0] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1935121937190923">port trunk allow-pass vlan 102</strong>
    [Router-GigabitEthernet1/0/0] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1489412603190923">quit</strong>
    [Router] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1656049436190923">interface vlanif 102</strong>
    [Router-Vlanif102] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1416658579190923">ip address 10.23.102.1 24</strong></span></span>
    # 配置AC,创建VLAN102,加入接口GE0/0/2,配置VLANIF102接口和Router互通。
    <span style="color:#333333"><span style="background-color:#dddddd"><AC> <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b26419010190923">system-view</strong>
    [AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1209299162190923">vlan 102</strong>
    [AC-vlan102] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b2004018172190923">quit</strong>
    [AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1156981544190923">interface gigabitethernet 0/0/2</strong>
    [AC-GigabitEthernet0/0/2] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b704003148190923">port trunk allow-pass vlan 102</strong>
    [AC-GigabitEthernet0/0/2] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1011159129190923">quit</strong>
    [AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b984608724190923">interface vlanif 102</strong>
    [AC-Vlanif102] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b287892828190923">ip address 10.23.102.2 24</strong>
    [AC-Vlanif102] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b125798053190923">quit</strong></span></span>
    # 在AC上创建一条到定位服务器的静态路由,下一跳指向Router。
    <span style="color:#333333"><span style="background-color:#dddddd">[AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b701234983190923">ip route-static 10.23.103.1 32 10.23.102.1</strong></span></span>
    # 在AC上执行ping操作,目的地址是定位服务器,可以ping通表示网络正常互通。
    <span style="color:#333333"><span style="background-color:#dddddd">[AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b649554249190923">ping 10.23.103.1</strong>
      PING 10.23.102.2: 56  data bytes, press CTRL_C to break
    <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912517_b1285908568190923">    Reply from 10.23.103.1: bytes=56 Sequence=1 ttl=255 time=1 ms</strong></span></span>
  2. 配置AC设备与定位服务器通信

    # 配置AC的SNMP协议版本。

    <span style="color:#333333"><span style="background-color:#dddddd">[AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b1376051217190923">snmp-agent sys-info version v2c</strong></span></span>

    # 配置读团体名为public123,写团体名为private123。

    <span style="color:#333333"><span style="background-color:#dddddd">[AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b1761148086190923">snmp-agent community read public123</strong>
    [AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b2051267976190923">snmp-agent community write private123</strong></span></span>
  3. 在AC上查看WLAN网络的基本配置

    检查项

    命令

    数据

    查看AP所属的AP组

    display ap all

    AP组:ap-group1

    AP name:AP1,AP2,AP3,...

    查看AP组引用的模板

    display ap-group name xxx

    射频0:
    • 2G射频模板:wlan-radio-2g
    • 定位模板:空
    射频1:
    • 5G射频模板:wlan-radio-5g
    • 定位模板:空

    查看2G射频模板下引用的模板

    display radio-2g-profile name xxx

    空口扫描模板:wlan-air-scan

    查看5G射频模板下引用的模板

    display radio-5g-profile name xxx

    空口扫描模板:wlan-air-scan

    • 如果AP组和单个AP下都有配置,则单个AP下的配置优先生效。
    • 对于新创建的模板,用户配置完成后,需要将此模板引用到AP或者AP组,才能最终生效。
  4. 在AC上配置空口扫描功能

    # 进入空口扫描模板“wlan-air-scan”,配置空口扫描信道集合。默认情况下,空口扫描信道集合是当前国家码支持的所有信道。
    <span style="color:#333333"><span style="background-color:#dddddd">[AC] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0176912517_b702514320190923">wlan</strong>
    [AC-wlan-view] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0176912517_b236705687190923">air-scan-profile name wlan-air-scan</strong>
    [AC-wlan-air-scan-prof-wlan-air-scan] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0176912517_b1913475979190923">scan-channel-set country-channel</strong>
    [AC-wlan-air-scan-prof-wlan-air-scan] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0176912517_b1341643916190923">quit</strong></span></span>
    # 进入2G射频模板“wlan-radio-2g”,引用空口扫描模板。
    <span style="color:#333333"><span style="background-color:#dddddd">[AC-wlan-view] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0176912517_b359558505190923">radio-2g-profile name wlan-radio-2g</strong>
    [AC-wlan-radio-2g-prof-wlan-radio-2g] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0176912517_b39705825190923">air-scan-profile wlan-air-scan</strong>
    [AC-wlan-radio-2g-prof-wlan-radio-2g] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0176912517_b1486369221190923">quit</strong></span></span>
    # 进入5G射频模板“wlan-radio-5g”,引用空口扫描模板。
    <span style="color:#333333"><span style="background-color:#dddddd">[AC-wlan-view] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_b789917254190923">radio-5g-profile name wlan-radio-5g</strong>
    [AC-wlan-radio-5g-prof-wlan-radio-5g] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_b464040935190923">air-scan-profile wlan-air-scan</strong>
    [AC-wlan-radio-5g-prof-wlan-radio-5g] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_b434563655190923">quit</strong></span></span>
    # 进入AP组“ap-group1”,引用射频模板。
    <span style="color:#333333"><span style="background-color:#dddddd">[AC-wlan-view] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_b2037363949190923">ap-group name ap-group1</strong>
    [AC-wlan-ap-group-ap-group1] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_b242000456190923">radio-2g-profile wlan-radio-2g radio 0</strong>
    Warning: This action may cause service interruption. Continue?[Y/N]<strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0175818418_b1384307436190906">y</strong> 
    [AC-wlan-ap-group-ap-group1] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_b849555722190923">radio-5g-profile wlan-radio-5g radio 1</strong>
    Warning: This action may cause service interruption. Continue?[Y/N]<strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_zh-cn_task_0175818418_b1384307436190906_1">y</strong> 
    [AC-wlan-ap-group-ap-group1] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0176912521_b80833075190923">quit</strong></span></span>
  5. 配置Wi-Fi终端定位功能

    # 创建名为“wlan-location”的定位模板,开启Wi-Fi终端定位功能,并配置定位信息上报的目的地和端口号。
    <span style="color:#333333"><span style="background-color:#dddddd">[AC-wlan-view] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b1791974705190923">location-profile name wlan-location</strong>
    [AC-wlan-location-prof-wlan-location] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b723432737190923">private mu-enable</strong>
    [AC-wlan-location-prof-wlan-location] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b702913779190923">private server ip-address 10.23.103.1 port 32180 via-ac ac-port 10001</strong>
    [AC-wlan-location-prof-wlan-location] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b1867212363127">source ip-address</strong> <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b197651833161215">10.23.102.2</strong>
    [AC-wlan-location-prof-wlan-location] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b980591243190923">quit</strong></span></span>
    # 进入AP组“ap-group1”,引用定位模板。
    <span style="color:#333333"><span style="background-color:#dddddd">[AC-wlan-view] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b2071797707190923">ap-group name ap-group1</strong>
    [AC-wlan-ap-group-ap-group1] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b1977115280190923">location-profile wlan-location radio all</strong>
    Warning: This action may cause service interruption. Continue?[Y/N]<strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_zh-cn_task_0175818418_b1384307436190906">y</strong> 
    [AC-wlan-ap-group-ap-group1] <strong id="ZH-CN_TASK_0180396988__zh-cn_task_0176912529_b1655682885190923">quit</strong></span></span>
  6. 配置定位服务器,并验证配置结果

    联系厂商获取相应文档后参考操作,本文档不描述具体操作步骤。

配置文件
  • Router的配置文件
    <span style="color:#333333"><span style="background-color:#dddddd">#
    vlan batch 101 to 102
    #
    interface Vlanif102
     ip address 10.23.102.1 255.255.255.0
    #
    interface GigabitEthernet1/0/0
     port link-type trunk
     port trunk allow-pass vlan 101 to 102
    #
    return</span></span>
  • AC的配置文件

    <span style="color:#333333"><span style="background-color:#dddddd">#
    vlan batch 100 to 102
    #
    interface Vlanif102
     ip address 10.23.102.2 255.255.255.0
    #
    interface GigabitEthernet0/0/2
     port link-type trunk
     port trunk allow-pass vlan 101 to 102
    #
    ip route-static 10.23.103.1 255.255.255.255 10.23.102.1
    #
     snmp-agent local-engineid 800007DB030200000000E0
     snmp-agent community read %^%#sP6,%Hno.$v[Lf#fiyP(eKm4)vNP*Q"mA~'$XjP4r}XXU4f%'&y>D`/1.5\Clr]I5mUJ46!a7'9p#*o2%^%#
     snmp-agent community write %^%#/.U;L9&iwS.dF15y]J"N\XU='K:YkWj/O.)=6W$3q{M1J4.<X"\h{a:p)c\;TBL\=qn=u+7YR~L/#`V>%^%#
     snmp-agent sys-info version v2c
     snmp-agent
    #
    wlan
     location-profile name wlan-location
      private mu-enable
      private server ip-address 10.23.103.1 port 32180 via-ac ac-port 10001
      source ip-address 10.23.102.2
     air-scan-profile name wlan-air-scan
     radio-2g-profile name wlan-radio-2g
      air-scan-profile wlan-air-scan
     radio-5g-profile name wlan-radio-5g
      air-scan-profile wlan-air-scan
     ap-group name ap-group1
      location-profile wlan-location radio all
      radio 0
       radio-2g-profile wlan-radio-2g
       vap-profile wlan-net wlan 1
      radio 1
       radio-5g-profile wlan-radio-5g
       vap-profile wlan-net wlan 1
    #
    return</span></span>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/474866.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言基础(十六)通过指针来输入和获取结构体的变量值

老样子&#xff0c;先看代码 #include <stdio.h> #include <string.h>#define NLEN 30 struct namect{char fname[NLEN];char lname[NLEN];int letters; };void getinfo(struct namect *); void makeinfo(struct namect *ptr); void showinfo(const struct namec…

如何在 Postman 中执行断言测试?

在当今的软件构建流程中&#xff0c;应用程序编程接口&#xff0c;简称 API&#xff0c;起到了不可或缺的作用&#xff0c;它们使得不同的软件应用能够互相沟通和交换数据。随着应用程序的不断演进变得越发复杂&#xff0c;保障API的可靠性及其稳定性显得格外关键。正因如此&am…

使用appuploder流程

使用appuploder流程笔记 1.如何没有账号去apple官网注册一个&#xff0c;地址&#xff1a;https://developer.apple.com/account 2.下载解压appuploder&#xff0c;双击打开&#xff0c;用刚刚注册的账号登录&#xff0c;下载地址&#xff1a;http://www.applicationloader.n…

员工上班摸鱼怎么管理

在当今快节奏的工作环境中&#xff0c;员工上班摸鱼的现象屡见不鲜。 这种行为不仅影响了工作效率&#xff0c;还可能对团队氛围和企业文化造成负面影响。 员工上班摸鱼的原因&#xff1f; 有些员工可能是因为工作压力过大&#xff0c;需要短暂的休息和放松&#xff1b; 有些…

人脸表情识别系统项目完整实现详解——(二)使用SSD模型检测人脸

摘要&#xff1a;人脸检测是人脸表情识别系统中至关重要的一环&#xff0c;其准确性直接影响到整个系统的性能表现。本文介绍了使用SSD模型和OpenCV进行高效人脸检测的完整代码实现。我们详细介绍了SSD人脸检测器的工作原理&#xff0c;包括如何加载预训练的SSD模型&#xff0c…

C语言经典算法-5

文章目录 其他经典例题跳转链接26.约瑟夫问题&#xff08;Josephus Problem&#xff09;27.排列组合28.格雷码&#xff08;Gray Code&#xff09;29.产生可能的集合30.m元素集合的n个元素子集 其他经典例题跳转链接 C语言经典算法-1 1.汉若塔 2. 费式数列 3. 巴斯卡三角形 4. …

【Spring IOC/DI】bean 的 5 种注册 与 5 种注入

什么是 bean 一个 bean 就是一个实例化对象 User user new User() 上面这行代码中的 user&#xff0c; 就是 User 类的实例化对象&#xff0c;即一个 bean&#xff08;User Bean&#xff09; 什么是 IOC Inversion of Control 控制反转&#xff08;反转对 bean 的控制&#…

ElasticSearch之Ingest Pipeline和Painless Script

写在前面 如果是我们需要在写入文档或者是返回文档时&#xff0c;进行修改字段值&#xff0c;或者增加字段等操作时&#xff0c;就可以考虑使用ingest pipeline和painless script。如下的需求&#xff1a; 1:ingest pipeline 在es 5中引入了一种新的节点类型ingest node&am…

安科瑞智能断路器产品介绍【可监可控 远程操控 短路保护】

开发背景 过去几年智慧用电的产品应用中&#xff0c;大多数只安装于进线测。主要存在以下几个问题&#xff1a;难定位&#xff0c;不知道具体哪个回路出线问题&#xff0c;排查困难&#xff1b;出线过载或线缆温度过高无法知晓&#xff1b;即使是出线回路安装了的场景&#xf…

个人开发App成功上架手机应用市场的关键步骤

目录 1. 苹果审核和APP备案 2. APP上架操作步骤 3. 审核和发布 4. 上线工作 总结 参考资料 在当前移动应用市场竞争激烈的背景下&#xff0c;个人开发App如何成功上架成为开发者们必须面对的重要任务。本文将重点介绍自建App上架至手机应用市场的流程&#xff0c;包括苹果…

2024你必须知道的外贸形势!

2024年外贸形势下的新机会在哪里&#xff1f;今天Erica给大家总结了几个主要市场的形式。 喜欢的话点点关注吧~ 欧美市场2024年应谨慎开发 海关总署11月7日发布的数据显示&#xff0c;前10个月&#xff0c;今年中国对欧洲出口呈下降趋势&#xff0c;中国与欧盟贸易总值为4.5…

前端项目,个人笔记(六)【无限滚动 + 拦截器】

目录 1、无限滚动 2、使用pinia进行用户数据持久化 3、完善个人笔记三中的拦截器 请求拦截器&#xff1a; 响应拦截器&#xff1a; 1、无限滚动 使用elementplus中提供的&#xff1a; 代码&#xff1a; <div class"body" v-infinite-scroll"load"…

【复现】某指挥调度管理平台 SQL注入漏洞_66

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 该平台提供强大的指挥调度功能&#xff0c;可以实时监控和管理通信网络设备、维护人员和工作任务等。用户可以通过该平台发送指令…

积鼎CFD发动机燃烧仿真,实现航空航天发动机内部燃烧过程的流体仿真

航空航天发动机中的燃烧现象是一种复杂的物理化学过程&#xff0c;包括流动、雾化、相变、传热传质、点火熄火、化学反应、污染物排放、热声振荡和冷却等多个过程&#xff0c;加上燃烧的非定常性和高湍流度&#xff0c;使得准确模拟燃烧过程变得异常困难。在传统CFD模拟需要考虑…

Docker在Mac上轻松部署RabbitMQ:从拉取镜像到创建运行带管理界面的容器全攻略

1、去官网下载docker 安装&#xff1a;把图标拉到应用程序即可 https://docs.docker.com/desktop/install/mac-install/ 2、拉取rabbitmq镜像 docker pull rabbitmq:3.8-management 3、创建并启动容器&#xff0c;同时设置环境变量以创建用户和密码 docker run -d --name m…

python中医学习服务管理系统flask-django-php-nodejs

随着世界经济信息化、全球化的到来和互联网的飞速发展&#xff0c;推动了各行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、动态的、交互友好的、高效的中医学习服务管理系统。当前的信息管理存在工作…

YOLOV5 部署:cuda和cuDNN安装

1、前言 TensorRT 的安装需要配合cuda的使用,所以这里需要安装cuda和cudnn用于加速推理 TensorRT 就是神经网络专门用来加速的框架 之前训练yolov5项目的时候,我们只是配置了torch的GPU环境,没有专门安装cuda和cudnn,因为简单的训练、推理没必要cuda加速。 torch的GPU配置…

MINT: Detecting Fraudulent Behaviors from Time-series Relational Data论文阅读笔记

2. 问题定义 时间序列关系数据&#xff08;Time Series Relation Data&#xff09; 这个数据是存放在关系型数据库中&#xff0c;每一条记录都是泰永时间搓的行为。 更具体地&#xff0c;每条记录表示为 x ( v , t , x 1 , x 2 , … , x m − 2 ) x (v,t,x_1,x_2,\dots,x…

【JS】浅谈Promise

Promise 前言一、Promise是什么&#xff1f;二、为什么用Promise&#xff1f;2.1解决回调地狱2.2 集中错误处理2.3代码解耦和复用 三、做什么&#xff1f;四、原型方法和实例方法&#xff1f;五、应用场景&#xff1f; 前言 promise是es6的新规范&#xff0c;它是一种异步解决…

粗糙度对应表,觉得挺实用

粗糙度新老标准经常会遇到&#xff0c;分享给大家