自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(499)
  • 资源 (8)
  • 收藏
  • 关注

原创 STM32CubeMX+MDK通过I2S接口进行音频输入输出(全双工读写一个DMA回调)

目前有一个关于通过STM32F411CEUx的I2S总线接口控制SSS1700芯片进行音频输入输出的研究。SSS1700 是具有片上振荡器的 3S 高度集成的USB音频控制器芯片。SSS1700 功能支持96 KHz 24 位采样率,带外部音频编解码器(24 位/96KHz I2S 输入和输出)并具有内置立体声16/24位ADC、立体声16/24位DAC、耳机驱动、五段硬件均衡器、音频 PLL、USB 时钟振荡器和 USB FS 控制器加上 PHY。

2024-04-07 21:56:51 1083

原创 智能变电站协议系列-5、IEC 104协议细化解读(IEC 60870以及如何获取对应国标和行标)

通过之前整体性的协议分析,目前确定先基于IEC104做深入分析,来结合分析电网常见的业务,以此从协议侧关联深入到业务侧。在国内该标准也应用比较稳定和广泛了,所以研究104协议相关资料也会更全一些。步骤 3规定域元素的数据类型。数据类型为整数型、布尔型等。注 :一个域元素可由几种数据类型组成。在一个具体协议集中 建议只用一种数据类型定义数据单元标识符的各域元素。例:定义下列数据类型〔图 14)。

2024-04-07 21:50:24 1046

原创 stm32学习总结:6、Proteus8+STM32CubeMX+MDK仿真蜂鸣器及ADC读取电压(Proteus标签整理原理图)

接下来我们在上一节的基础上增加一个蜂鸣器,当按下开机按钮时蜂鸣器滴响一声,关机时蜂鸣器滴滴滴响三声,并且通过ADC方式读取一下电压值。于此同时,我们发现线路变的越来越复杂了,线再怎么改,原理图都显得比较杂乱,因此我们需要调整一下原理图,通过Proteus的标签功能整理一下原理图,让它显得整洁一些。接下来学习一下I2C总线,利用其控制一下显示屏,就可以做一些带屏的项目了。

2024-01-05 19:52:36 1244 2

原创 stm32学习总结:5、Proteus8+STM32CubeMX+MDK仿真串口并使用串口打印日志(注意重定向printf到串口打印的问题)

上一节模拟实现了串口收发打印,一般我们裸机打印日志通过串口或者JLINK工具等带的RTT打印,对于仿真,我们选择使用串口打印再合适不过了,这里总结一下重定向printf到串口打印日志的过程;期间,尝试了CLion+arm gcc的方式,发现stm32f10x的flash还是支撑不起来未裁剪的标准库,只要使用stdio相关标准库编译时就很容易flash超标。

2024-01-03 19:28:58 1463

原创 智能变电站协议系列-4、IEC 101、IEC 104协议(IEC 60870)

IEC 101和IEC 104对于智能变电站来说已经属于旧的协议了,其属于IEC 60870,但目前在电力自动化中仍然流行,对于IEC 61850和IEC 60870混用的场景也存在,目前官方赞助商似乎在推一些转换网关来将对应的协议做转换以此解决这种协议兼容问题,国内似乎也有在做这块的网关的企业。IEC 101为串行模式,而IEC 104走TCP/IP。对比一下IEC 60870相较于IEC 61850确实感觉会功能相对少一些,扩展性稍微差一些,但理解上相对简单一些。

2023-12-26 09:03:23 1566 4

原创 智能变电站协议系列-3、MMS协议示例(IEC61850)

接下来我们来分析一下MMS协议,该协议比较抽象,从定义上和理解上都比较抽象,只能在实际使用中去熟悉了,这里我们以操作文件的demo示例来理解和分析整个协议。MMS协议的分析暂时就到这里了,接下来我们再去分析下IEC 101和IEC 104协议。

2023-12-25 19:26:11 1417 4

原创 智能变电站协议系列-2、SV/SMV协议示例(IEC61850)以及5G专网下的电力方案分析

之前我们对IEC61850协议有了整体的了解,对一些概念有了一定的认识,并针对GOOSE协议做了进一步的尝试和了解,接下里我们针对SV协议也做进一步的了解和尝试,并基于libiec61850对SV协议做一些分析,比如运行其demo来进行SV协议抓包分析等。(Sampled Measured Value采样测量值,也称为SV (Sampled Value)或SMV,一种用于实时传输数字采样信息的通信服务,所以有的时候也可以搜索SMV)接下来我们再分析下MMS协议。

2023-12-24 20:02:59 1392

原创 智能变电站协议系列-1、GOOSE、SV、MMS协议简介及GOOSE示例运行问题(IEC61850)

目前有一个新的研究,关于电网使用的GOOSE、SV、MMS协议,并使用相关库来做一下测试。由于goose、sv、mms等都属于IEC61850,因此,需要对IEC61850相关内容有一些了解,都是国际标准,属于电气自动化的一部分,对于自动化或者电气相关领域有接触的专业应该或多或少有一些了解。IEC61850目标是用于变电站自动化、分布式能源、水力和天然气发电厂、风力发电厂、电动汽车作为分布式能源等领域,目前似乎在变电站自动化方面的推广和使用更加广泛。

2023-12-22 19:02:32 3776 3

原创 stm32学习总结:4、Proteus8+STM32CubeMX+MDK仿真串口收发

前面我们已经实现点灯,下面就做一些数据交互的内容,先搞一下串口让数据可以用串口打印以及通过虚拟终端显示出来(就相当于有个显示屏可以显示数据了)。这样子基于串口通信的STM32应用开发基本就入门了,串口通信由于比较常见,所以这里先简要总结了一下,后续的内容就可以通过串口来打印日志了,STM32F103有两组串口,一组我们可以用来打印日志,一组用来和外部通信做交互。接下来我们接着去总结一下按键、蜂鸣器、定时器、看门狗等内容,再考虑继续往下总结I2C、ADC、SPI等接口来读取一些传感器信息以及读写flash等。

2023-12-20 19:11:12 1756

原创 推荐一个免费虚拟串口工具HHD Software Virtual Serial Port Tools

对于软件开发串口协议相关内容时虚拟串口是很方便进行串口模拟的工具,结合串口工具上位机就可以先根据协议自行模拟调试了,同理对于下位机也是一样,虚拟串口可以提高上位机和下位机开发者的自测联调效率;此外,在某些时候仿真设备也需要这样的虚拟串口工具来仿真串口调试,后续我们进行Proteus仿真就会用到。

2023-12-18 19:08:00 2105 2

原创 protobuf、protobuf-c、protobuf-c-rpc在Linux(Ubuntu18.04)编译安装及交叉编译arm\aarch64版本

如下介绍c语言的protobuf+rpc的开源库protobuf-c和protobuf-c-rpc,其适合于嵌入式分布式场景,利用protobuf协议的可扩展性比较方便进行协议兼容升级,利用rpc接口的网络易用性,不需要再从头到尾实现一遍socket通信、通信接口设计,只需要实现C函数接口设计和开发以及利用proto设计好交互协议即可,并且具备一定的跨编程语言交互特性,每个具备联网能力的嵌入式设备都可作为rpc客户端和服务端,可以快速进行嵌入式设备业务组网开发(此外,还有一些适合于stm32的protobu

2023-12-13 20:01:38 488

原创 stm32学习总结:3、Proteus8+STM32CubeMX+MDK很有搞头

前阵子用codesys的软PLC方案来仿真测试了PLC,以此研究了一阵子PLC和profinet,感触颇深,这种仿真软件还真是挺好用的,硬件软件化真的很方便。最近stm32上有个使用 ADAU1361进行录放音的研究,正好找到了仿真stm32的方案:Proteus,这个时候我发现这个不就是我们大学仿真C51的时候用的软件吗,时间太长不搞这块的开发感觉都快忘的差不多了,实际软件开发做多了感觉这类电子控制类的开发也变得有意思了,PLC、C51搞的有点返祖的感觉了。

2023-12-11 19:49:29 848

原创 使用Go快速开发TCP公共服务

之前使用的公共TCP服务无法使用了,想了一下整个实现原理不是很复杂,就利用Go快速开发了一个,利用公网服务器可以快速部署起来。如上为demo演示,作为小工具够用了,实际项目可以做更多的扩展,比如多用户展示及使用,历史测试数据存储及展示,端口可配置,hex数据收发展示,通信方式扩展等等。

2023-12-06 19:53:52 254

原创 Windows下使用AndroidStudio及CMake编译Android可执行程序或静态库动态库

之前在Android Studio中编写NDK C/C++相关代码,通过Gradle和CMake编译成动态库,然后再利用JNI的方式进行调用。现在需要编译Android C/C++可执行程序,通过运行程序做一些小实验,而这些小实验都是纯C/C++编写,不包含任何Java代码,那么是否可以利用现成的环境进行开发呢?

2023-12-05 20:01:23 985

原创 CoDeSys系列-4、基于Ubuntu的codesys运行时扩展包搭建Profinet主从环境

我们之前已经在windows机上运行起了基于codesys的软PLC,并且其作为主站和跑在虚拟机上的p-net从站进行了简单的IO操作,但是跑在Windows上的运行时PLC会影响网卡,而不跑运行时的则由于实时性不足导致一些超时的问题,因此我们这里在Ubuntu18.04上更换实时Linux内核,然后利用codesys的for Linux扩展包将该实时的Ubuntu18.04改造运行软PLC作为主站来和树莓派从站做profinet交互,也熟悉一下更换Linux实时内核的过程。

2023-11-04 11:36:14 1719 10

原创 CoDeSys系列-3、Windows运行时软PLC主站和p-net从站IO设备组网测试

前面CODESY下载安装并熟悉了,p-net搭建从站也已经跑在虚拟机树莓派上了,我们只需要快速搭建一个profinet主站来和从站进行交互即可,这里我们直接用Windows下带的软PLC搭建profinet主站并和p-net的demo从站程序进行IO交互。评估是否进行Windows下的运行时PLC前先看一下注意事项,Windows下安装配置会需要修改boot及防火墙等,可能会影响Windows电脑的正常使用,所以创建项目时的设备可以选择非RTE的。

2023-10-25 19:58:31 2080 4

原创 CoDeSys系列-2、CoDeSys安装及Windows下创建项目测试

目前CODESYS在国内也有很多城市有办事处,且有国内的网站,所以通过国内的官网下载相关软件会方便很多,对应的一些扩展包也比较方便下载,一些安装教程对应的论坛也比较详细,对于入门CODESYS很有帮助,国内的一些芯片的推广也可以按照这种模式来,官网、IDE、文档、论坛、高速下载网址都是推广芯片很重要的一环。

2023-10-21 18:26:56 1170

原创 CoDeSys系列-1、CoDeSys了解及资料收集

这里对CoDeSys的总结主要是用于Profinet的组网,因此相对较浅,但收集的资料也支持深入的学习和研究CodeSys及PLC编程,CodeSys对于学习研究PLC很有帮助。

2023-10-21 18:07:35 388

原创 工业自动化控制通信协议Profinet系列-3、CoDeSys软PLC方案介绍

之前在树莓派desktop上已经成功编译运行测试程序,但是还需要主站去和其交互才能看到比较完整的profinet交互过程,因此这里我们需要搭建运行profinet主站,并和之前的从站程序交互运行,这里一番查找后最终确认先使用软PLC方案来搭建主站验证,等到实际场景可以买PLC硬件设备做进一步验证。

2023-10-21 18:06:18 572

原创 工业自动化控制通信协议Profinet系列-2、编译p-net在虚拟机树莓派上运行示例

之前已经对Profinet做了一些基础的了解,接下来进行简单的Profinet组网,并利用开源库p-net的示例程序和plc基于profinet网络进行交互,以此抓包分析整个profinet协议交互过程,便于我们进一步开发基于profinet协议的应用。

2023-10-19 19:56:44 1230 22

原创 工业自动化控制通信协议Profinet系列-1、了解Profinet协议及收集资料

最近需要对profinet协议进行测试,获取对应协议的网络环境信息,比如带宽、时延等信息,在了解了一些资料后发现profinet主要使用在工业自动化领域,最终牵扯到一些PLC的内容,这让我回忆起大学学习PLC的一些场景,禁不住有一些感慨,一晃已经差不多有10年光景了,不由有些恍惚,时间过的真快。言归正传,已经记不得当时用的哪家的PLC了,只依稀记得使用梯形图编程的,做了可视化的界面控制电机,课程时间大概是一个学期,学完就做了一些实验项目,在毕业后就基本再没有接触过PLC的项目。

2023-10-19 19:46:33 778

原创 ipv6进行ping6测试报错connect: Invalid argument解决方法

ens33,增加%,然后添加网卡,比如我这里是ens33,也可能是eth0,wlan0等。

2023-10-18 21:00:00 641

原创 C调用Objective-C的类和方法

最近有一个C提供回调接口调用Objective-c接口来传递数据的需求,研究了很久,最终通过bing的AI对话查到了需要的内容,这里记录一下,算是给基于C的IOS开发开了一个头。在Objective-C中,你可以创建一个全局的类方法,并在C语言中通过Objective-C运行时(Runtime)id为对象类型,int、double、long等类型也支持,字符串等类型也需要通过id对象来调用。另外,Objective-C的代码可以直接调用C的函数,直接引入C的头文件,不需要额外改动。

2023-10-17 21:00:00 1470

原创 Qt利用QTime实现sleep效果分时调用串口下发报文解决串口下发给下位机后产生的粘包问题

当有多包数据需要连续下发给下位机时,比如下载数据等,下发后下位机发现数据包粘在一起了,如果没有设计包尾且包长度不固定,那么就会出现粘包问题,即一包数据实际包含了一部分下一包的数据。1:增加包头包尾,下位机一个字节一个字节去读,然后根据包头和包尾去组成完整的一包,否则不做处理;2:上位机发包间隔增加一定的延时,下位机在一段时间内读取到的所有数据当成完整的一包;

2023-09-04 19:17:47 862 2

原创 CLion远程Linux开发环境搭建及找不到Linux头文件的解决方法

在某些时候我们的交叉编译环境已经部署在服务器上,本地资源不足,编译环境就算搭建起来也编译比较慢,这种情况下我们仍可以在CLion上配置远程开发并添加一键编译和调试功能,此外,大多数情况下我们都是在Windows下开发Linux下的程序,因此Windows下的CLion配置关联Linux虚拟机或Linux编译机器进行编译调试是很有必要的。如果程序在远程服务器直接运行的话则可以直接远程gdb调试,如果程序还要部署在设备上调试的话则单独配置远程gdb在编译完成之后。

2023-09-04 18:38:49 1272

原创 浏览器播放rtsp视频流:4、jsmpeg+go实现局域网下的rtsp视频流web端播放

之前的rtsp转webrtc的方案存在如下缺陷:1.只支持h264;2.受限于webrtc的理解难度以及搭建turn/stun的p2p服务等问题,对于局域网下的业务需求来说有些杀猪用牛刀的意思;3.ios不支持webrtc。基于以上原因,我又找到了一些其它的方案进行了测试,目前看jsmpeg的方案更加适合我们的需求,而且普通压缩大小为135kb,gzip方式压缩后仅仅42kb,在嵌入式场景下也可以使用。

2022-10-31 20:38:12 2935 5

原创 Windows下安装及卸载程序可用的添加和删除当前路径到环境变量的bat脚本以及如何和inno setup结合使用的实例

这样打包的exe程序在安装后就可以将当前路径添加到环境变量了,卸载时还可以自动删除环境变量中的路径以及删除对应的文件。

2022-10-30 21:07:25 2478

原创 CLion常用插件及c文件模板配置

其实我们还可以将这些模版开发成插件上传到插件市场(Java就可以开发),这些留给以后折腾吧,感兴趣的可以自行先研究一下。

2022-10-01 11:18:52 7670 1

原创 Go实战学习笔记-1.3流程控制

这里还是再总结一下流程控制,和其它语言相比做了一些优化,比如相比c增加了迭代器类型的for循环,switch针对c中容易出问题的地方做了一些修改,避免出现缺少break时存在的常见问题,此外,和Java类似也存在跳出循环和多层嵌套的方法,C中容易造成使用不当的goto也同样支持,在解决比较麻烦的go错误处理时goto有奇效,但基本上还是不太建议使用。......

2022-08-29 20:35:43 322

原创 Go实战学习笔记-1.2基础语法:变量、常量、包、指针等

这里总结一下Go中变量、常量、包、函数、指针、输入输出及基础数据类型转换的基础用法,便于回顾。虽然官方不建议使用其它语言类比着学习Go,但是学习语言的过程中抽象通用的部分学习起来会快一些。常量、变量、指针可以当成简化的C来学习,基本上快捷声明和赋值的方式比较新颖,但是也更加简单了,看到指针也不会那么头疼害怕内存泄漏了,包的概念和Java、python等包的概念和使用基本类似,只是为了区分标准库的包和非标的包引入了weburl方式的包导入,这点也不是很难理解和使用。

2022-08-25 10:11:16 491

原创 Go实战学习笔记-1.1Go安装、介绍及Go Playground介绍和运行hello world

我按照Go官方的A tour of Go()刷了一遍,之后写了一些用于Windows、OpenWrt以及摄像头相关的一些应用,但是总感觉少了一些什么,所以找了一些书籍(

2022-08-10 17:45:52 607

翻译 Go书籍大全-从初级到高级以及Web开发

我使用Go开发已经有一年左右时间了,由于有C开发的经验,从学习到上手大概花费了一周左右的时间,目前主要是利用GoFrame和Gin框架开发一些网关设备上的Web后端以及利用Go写一些流媒体相关的客户端和服务端,但是总感觉少了点什么,个人感觉可能是看的书比较少,对于Go开发掌握的不够,所以这里找了一些书籍,打算看书做更多的项目来实践一下。总的来说,Go的开发效率是很高的,很多时候给我的感觉就像在写简化的C,静态链接的方式也避免了编译时大量找依赖库的麻烦。...

2022-07-28 20:37:30 1895

原创 全功能WebRTC应用程序AppRTC应用服务阿里云搭建测试总结并docker化提供镜像

之前我们已经在阿里云服务器上搭建了turn/stun服务(https),也使用webRTC测试过rtsp转webRTC播放视频(https),实时性很好,这里我们再搭建官网的全功能WebRTC应用程序AppRTC应用服务做一下实时音视频通话的测试。docker的好处就在这里了,一次部署,只要在支持docker的环境再次部署就容易多了,再也不同担心部署过程中的环境依赖问题了,这让运维实施和开发都少了头疼的一件事(在我环境上是好的.)。httpshttpshttpshttpshttpshttps。...

2022-07-27 18:27:01 1900

原创 在阿里云Ubuntu中使用coturn创建和配置您自己的STUN/TURN服务

此前rtsp转webRTC的本地服务运行的不错,但是使用的某个免费stun服务突然被关停了,造成一些rtspToWebRTC的服务受到影响,因此,目前打算在我闲置的阿里云服务器上搭建stun/turn服务,我的域名xiaoyaoyou.xyz二级域名也一直只用在githubpage上,算是比较浪费,这里正好搭个stun/turn服务,后面看能否接到一些项目补贴一下。接下来我们或许会利用搭建好的stun/turn服务做一些小项目,比如开头提到的视频会议。httpshttpshttpshttps。...

2022-07-20 10:11:05 2026

原创 Windows下搭建nginx和rtspToWebRTC以及Windows程序添加为服务开机启动和后台运行

之前的rtsp转webrtc的服务很好用(https),测试使用效果都很好,而且由于Go的特性很容易将程序编译为跨平台的程序。由于高并发的需求,一般会搭建nginx服务,Linux和openwrt上都测试过命令直接安装运行nginx可行,这里在Windows下也做简单总结便于后续服务搭建在Windows上。接下来我们总结一下搭建stun服务的搭建和使用,自己有域名以及公网服务器的话可以贡献一下空闲的流量,没有公网服务器和域名也可以在局域网下用ip玩一下。httpshttpshttpshttps。...

2022-07-20 09:48:50 2405 1

原创 SSH跨平台终端工具tabby推荐

自从xshell停止使用一段时间以来,切换了很多ssh工具,由于我跨系统使用较多,需要经常切换Linux、Windows、MacOS系统开发,所以跨平台的对于我来说很重要,之前使用MobaXterm使用起来感觉不错,但是只有Windows的版本,苦恼一段时间后找到了tabby,使用起来真不错,主题炫酷,配置方便,配置导入导出方便,多窗口便利,web浏览器也可以使用,代码开源。https!httpshttpshttpshttpsTabby(前身是TerminusWeb应用(也可托管)......

2022-07-19 09:25:48 4161 1

原创 前端学习总结:5、Bootstrap

bootstrap 是最受欢迎的 HTML、CSS、JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。官网:https://getbootstrap.com/中文网:https://www.bootcss.com/阿里网盘转换的 pdf 文档:「converted-Bootstrap3 参考手册.pdf」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。 链接:https://www.aliyundrive.com/s/QPiAwMUVqF7

2022-07-16 12:50:05 411

原创 cgo+gSoap+onvif学习总结:9、go和c进行socket通信进行onvif协议处理

cgo目前看仍然存在一些问题,虽然我在amd64和x86上使用正常了,1.18版本没有出现内存分割违例问题,但是arm64上运行时仍存在分割违例问题,所以打算使用一个比较稳妥的方式进行c和go的通信,那就是socket通信。至于c++方式实现的话可以使用grpc+pb的方式来和go通信,或者数据复杂一些也可以使用mongos和nanomsg来进行,这些可以留着扩展研究,由兴趣的可以尝试一下,这些处理方式比起原始的socket虽然更复杂但更具扩展性,可以结合项目实际使用情况来定。我这里由于是c代码,grpc方

2022-07-04 09:53:26 852

原创 cgo+gSoap+onvif学习总结:8、arm平台交叉编译运行及常见问题总结

此前我们都是将相关cgo程序代码在Windows上运行的,所以基本是x86或者amd64,在wsl上编译c或者go都是比较简单容易的,没有太大的问题,但是当我们需要将cgo程序应用于arm平台时(不管是Android、openwrt、纯linux或者现在的macOS很多都使用arm架构芯片了),就需要关注到交叉编译的问题,所以这里以arm-openwrt为例,总结使用gSoap的cgo程序如何在交叉编译之后正常运行于arm平台,一些常见问题我们是如何解决的,这对于使用gSoap+cgo框架的onvif协议程

2022-06-24 16:13:22 632

原创 Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法

Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法文章目录Qt数据库表格添加右键选项功能及右键按钮可能不显示问题解决方法1. 前言2. 思路及主要代码3. 注意点:右键时按钮不出现4. 结果1. 前言Qt数据库操作中大部分用来读取,某些时候用来修改某一个数据,这两个都好实现,通过重写QSqlQueryModel来进行限制哪些位置可以单击修改,哪些位置只读即可。那么如果我们要给某一行添加右键选项进行整行的操作,怎么处理那,接下来我们就来总结一下。2. 思路及主要代码1.设置table

2022-04-03 10:03:18 1819

go读取Linux下cpu占用率、cpu温度、内存占用率及磁盘占用率

go读取Linux下cpu占用率、cpu温度、内存占用率及磁盘占用率

2021-08-27

tableSqlQueryModelTableviewTest.zip

Qt下tableview和sqlqueryModel集合使用示例

2021-04-03

g711测试音频

g711测试音频。

2019-03-25

ps格式测试文件

ps封包格式的测试音频文件。

2019-03-25

测试音视频及播放器大放送

包括h265、h264、aac、mp4等一系列文件及potPlayer等播放器

2019-03-25

SourceInsight4插件.c和.h跳转

sourceInsight的进行.c和.h的跳转插件,配置快捷键后一键跳转,还是很好用的。

2019-01-22

SourceInsight4配置

SourceInsight4配置文件,背景等均为护眼颜色,很好用,欢迎大家尝试。。。。。。。。。。。

2019-01-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除