- 博客(131)
- 资源 (39)
- 收藏
- 关注
原创 TDOA定位方法的Fang算法的程序实现(二维)
TDOA定位方法的Fang算法的程序实现(二维)摘要: 蜂窝无线定位服务(LCS)是一种具有广阔市场前景的移动增值业务,其基本原理是利用现有蜂窝网络,通过对各种位置特征参数,包括到达时间(TOA),到达时间差(TDOA),到达方向(DOA)的测量和估计,从而实现移动用户的定位。 本篇介绍TDOA定位方法的Fang算法及其程序实现。1、引言:在各种无线定位系统中,...
2020-01-15 09:51:27 10525 12
原创 Linux 中的驱动开发的初学者体会
Linux 中的驱动开发的初学者体会很多年前,心里就存下这样一个愿望。就是把Linux 的驱动开发搞清楚。但是一开始上上这样的开发难度天大了,对着一堆的寄存器发愁。于是就从简单的STM8,PIC16FXXX ,51 等板子入手开发一些单片机例程。一路上上做做小家电,而后从开发STM32下的开发。如今终于可以大阔步的学习Linux的驱动开发了。其实Linux的驱动开发并没有想象的那么难,就是要耐心,耐心,再耐心。51 或者 STM32 等。单片机开发很难接触到更高层次的系统方面的知识,单片机开发由
2022-01-08 10:02:50 2082
原创 IMEI 码的校验和生成
IMEI 码的校验和生成文章目录IMEI 码的校验和生成IMEI 码Luhn算法代码实现CIMEI 码IMEI 码,即手机的串号。它是 International Mobile Equipment Identity( 国际移动设备身份) 的简称,就像是手机的身份证,是用来帮助辨别手机身份真伪的。 第一部分 TAC,Type Allocation Code,类型分配码,由8位数字组成(早期是6位), 是区分手机品牌和型号的编码,该代码由GSMA及其授权机构分配。其中TAC码前两位又是分配机构标识 (
2021-11-08 09:43:35 3378
原创 学习FreeRTOS的几点体会
学习FreeRTOS的几点体会刚开始接触RTOS是从任哲编著的《嵌入式实时操作系统uCOS-II原理及应用》这本书开始的,当时手上有一个stm32的开发板,简单移植跑了跑。实际项目中用到RTOS的机会非常少,在消费电子领域里,硬件的成本控制做到了极致。而且对实时性要求并不高。所以一般很少用到RTOS内核。但是在通信领域,RTOS用到的机会还是很多的。ucous-II 的资源比较好找,但是商用有版权的缘故。相对UCOS,另一个比较不错的选择就是FreeRTOS, 它已经作为Stm 公司内嵌中间件的形式,
2021-06-17 09:08:47 698
原创 索尼游戏手柄SP2的开发体会
索尼游戏手柄SP2的开发体会1.PS手柄介绍接收器引脚输出:通信时序:2、代码解读3、库文件解读ps2手柄是索尼的PlayStation2游戏机的遥控手柄。该款手柄的通讯协议被游戏爱好者破解,使得手柄可以接在其他器件上遥控使用,比如遥控我们熟悉的智能小车。突出的特点是这款手柄性价比极高,按键丰富,方便扩展到其它应用中。1.PS手柄介绍ps2手柄由手柄与接收器两部分组成。接收器与单片机相连,用于接收手柄发来的信息,将信号传递给单片机。单片机也可通过接收器,向手柄发送命令,配置手柄的发送模式。
2021-04-30 14:03:44 1465
原创 基于STM32系列芯片的 IAP实现的探索
基于STM32系列芯片的 IAP实现的探索 什么是IAP?如何实现IAP?第一步:学习官方源代码第二步:了解STM32芯片基本硬件参数第三步、搞清除STM32内置Flash第四步、 STM32程序运行机制IAP代码实现:1、实现flash写入,删除,修改。2、IAP 通信协议设计什么是IAP?IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程
2021-04-25 10:54:56 573 5
原创 STM32 进入Stop模式后电流还是很大怎么办?
STM32 进入Stop模式后电流还是很大怎么办?STM32 进入停止模式后电流还是很大,可能椒几百个uA,怎么办?通常做法有如下几点:MCU外围管脚配置检查外围有无闭合回路SWDIO,SWCLK 管脚设备运行时的外设功能,逐一关闭。1. MCU外围管脚配置要将MCU外围管脚配置一番,那如何配置呢,特别是嵌入式的软件工程师,因为对硬件电路不太熟悉,往往会感到疲惫感,调试了一整天,电流还是下不来,这怎么办才好呢?不妨我们从头开始梳理。STM32的GPIO工作方式GPIO支持4种输入模
2021-01-20 11:12:39 3196
原创 mysql root密码重置
文章目录mysql root密码重置1.修改本地mysql目录中的my.ini文件2.在win +r 输入cmd,进行mysql的重启启动操作3.直接输入mysql -uroot -p4、去掉my.ini文件skip-grant-tables 重启msql, 用更新后的密码登录就可以了。mysql root密码重置解决问题思路 :1 . 修改主配置文件 /etc/my.cnf , 设置登录时跳过权限表的验证2 . 设置好后重启服务3 . 在mysql-server 服务器上做免密码登录 , 更新r
2021-01-14 14:36:17 112
原创 Qt操作Office的一个实例--口算题生成器制作。
文章目录Qt操作Office的一个实例--口算题生成器制作。1、#include Qt操作Office的一个实例–口算题生成器制作。学校里经常会要求口算达标。如果手写口算题效率太慢,何不用Qt做一个口算生成器呢?虽然Qt自带文本编辑功能,不过这次还是想尝试操作COM对象来实现。于是从网上下载一个文档QWord.cpp 来了解Qt操作COM对象的方法。粗略分析了QWord.cpp 的文档,基本了解如下:1、#include <ActiveQt/QAxObject>要操作office需要
2021-01-06 10:01:21 730
原创 DW1000 TX POWER (发射功率) 解析
DW1000 TX POWER (发射功率) 解析寄存器地址0x1E用于设置射频的发射功率。一般说来,我们会将发射功率设置在最大,因为功率越大,发射的距离越远。但在某些情况下会减少发射功率,例如在限制的距离范围内等等。DW1000设有OPT 存储区域来保存发射功率的校准值。0x1E寄存器地址有4个byte 的地址长度。每个地址单元都有特定的意义。发射功率有两种运行方式:自动模式,手动模式。可以0x04寄存器地址的DIS_STXP位来设定。1、TXPOWER发射功率设置单元每个控制单元有8个bi
2020-12-15 13:49:04 4559
原创 Qt 关于定时器实用的总结
文章目录Qt 关于定时器实用的总结第一种方案:startTimer + QTimerEvent第二种方案:QTimer类+信号和槽定时器与线程Qt 关于定时器实用的总结在实际编程中常常会使用到定时器,现在就将定时器的用法作个总结。第一种方案:startTimer + QTimerEvent对于一个QObject的子类,只需要使用int QObject::startTimer(int interval) 函数来开启一个定时器。当定时器溢出时可以在timerEvent() 函数中进行相关操作。例如
2020-11-27 10:50:18 501
原创 Socket连接心跳包的机制总结
文章目录Socket连接心跳包的机制总结心跳包的由来心跳包的作用心跳包由服务端还是客户端发送?Socket连接心跳包的机制总结心跳包的由来心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一个空包。在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项:SO_KEEPALIVE。系统默认是设置的2小时的心跳频率。但是它检查不到机器断电、网线
2020-11-26 14:40:52 1190
原创 加权最小二乘法的理解
文章目录那什么什么是加权最小二乘法?异方差的修正在需要人为地改变观测量的权重的应用场合中,都会涉及到加权最小二乘法的应用。那什么什么是加权最小二乘法?加权最小二乘法的概念:加权最小二乘是对原模型进行加权,是该模型成为 一个新的不存在异方差性的模型,然后对该新模型使用普通最小二乘法估计其参数进行优化。相关概念梳理:异方差性的解释:随机误差的方差不全相等。异方差性是相对于同方差而言的,同方差是为了保证回归参数估计量具有良好的统计特性。也就是线性回归函数中的随机误差项(扰动项)必须满足同方差性,即方差
2020-11-19 10:08:00 7893
原创 Qt 实现数据协议控制--组帧、组包、解析帧、解析包
数据传输中的组帧和组包一、数据帧,数据包的概念数据帧组包二、 程序实现:2.1、frame(帧)类的实现:2.2、Pack(包)类的实现:三、测试一、数据帧,数据包的概念数据帧数据传输往往都有一定的协议,通过CRC校验来验证数据的可靠性。数据帧包含三部分,帧头、数据部分、帧尾。其中帧头和帧尾包含一些必要的控制信息,比如同步信息,地址信息、差错控制信息等等。组包多个数据帧可以捆在一起,添加包头信息,就可以组包。组包可以使得多帧的数据同时发送,提高通信的效率。数据的帧包可以提高数据传输的可靠性。下
2020-11-12 14:08:06 12292 3
原创 关于QMap的几点总结思考
关于QMap的几点总结思考题记:前段时间集中精力写了数据的分拣算法,用到了容器QMap和QMultiMap。回头再来回去该算法的时候,又觉得当时好像不是自己写的一样,于是有必要将QMap类来总结一下。首先来了解下C++中STL中的map:map是STL的一个关联容器,它提供一对一的hash。特点:第一个可以称为关键字(key),每个关键字只能在map中出现一次;第二个可能称为该关键字的值(value);map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。M
2020-11-05 12:51:18 4188
原创 QMap详解
QMap详解QMap是Qt的一个模板类,它是基于红黑树算法的一套字典。 QMap<Key,T>是Qt容器类型的一种,它通过(Key, value)存储一对值,并通过Key可以查找与之关联的value的值。 QMap和 QHash是很相似的,不同的地方是:QHash的查找速度比QMap要快很多。在对QHash进行迭代时,这些项是任意排序的。在QMap中,项总是按键排序。QHash的关键类型必须提供运算符==()和全局QHash(key)函数。QMap的关键类型必须提供操作符<(
2020-11-05 10:00:34 41222
原创 Qt基于QGraphicsObject自定义图元并实现简单的动画
文章目录Qt基于QGraphicsObject自定义图元并实现简单的动画举例;Qt基于QGraphicsObject自定义图元并实现简单的动画Qt 图形的绘制 可以是QPainter方法直接绘制,另一种方法就是通过继承QGraphicsItem类来定制自己的图元类,这样就可以根据自己的需求来制作它的形状、颜色、属性以及交互等。但是这样的图元会存在一个缺点,那就是不能使用Qt的信号/槽机制,也不能使用Qt属性系统,也不能使用Qt的动画框架实现动画。在Qt已经考虑到了这些问题,QGraphicsObjec
2020-11-02 15:32:09 2733
原创 实现Qt日志功能并输出到文件
文章目录实现Qt日志功能并输出到文件一、基本分类:二、如何截获这些信息三、将qDebug()\qWarning()\qCritical()\qFatal() 信息输出到指定文件中实现Qt日志功能并输出到文件一、基本分类:qDebug : 调试信息提示qWarning: 一般的警告提示qCritical: 严重错误提示二、如何截获这些信息Qt提供了qInstallMsgHandler 方法用来定制消息发生后如何来处理。qInstallMsgHandler 是一个回调函数,主要是由qDebug、
2020-11-02 09:18:12 3545
原创 C# 调用C++写的dll的实现方法
文章目录**C# 调用C++写的dll的实现方法**C# 调用C++写的dll的实现方法C#调用C++的非托管类的dll其实很简单基本就是固定的调用格式。一、 dll的编写1、首先是打开VS新建一个C++的控制台程序,下一步后选择dll以及空文档即可。2、然后就是添加一个类添加一个方法。方法排头固定格式 extern"C"__declspec(dllexport) 后面加方法即可。 例如如下代码:extern"C"__declspec(dllexport) char* ShowImages(B
2020-10-28 16:36:50 268
原创 VS C++生成dll和静态调用dll的方法
一、动态链接库(dll)概述在实际编程中,我们可以把完成某项功能的函数放在一个动态链接库里,然后提供给其他程序调用。1.1 静态库和动态库静态库:函数和数据被编译进一个二进制文件(扩展名通常为.lib),在使用静态库的情况下,在编译链接可执行文件时,链接器从静态库中复制这些函数和数据,并把它们和应用程序的其他模块组合起来创建最终的可执行文件(.exe)。当发布产品时,只需要发布这个可执行文件,并不需要发布被使用的静态库。动态库:在使用动态库时,往往提供两个文件:一个引入库(.lib,非必须)和一
2020-10-28 16:20:18 1999 1
原创 C#泛型的简单理解
文章目录C#泛型的理解题记:泛型的定义:创建泛型类C#泛型的理解题记:泛型和继承是提高程序可重用性的两大法宝。泛型的主要思想就是将算法从数据结构中抽象出来,使得预定义的操作能够作用于不同的数据类型,从而简化整个编程模型。泛型的定义:泛型(Generic)是具有占位符(类型参数)的类、结构、接口和方法,它与普通类的区别是多了一个或多个表示类的占位符,这些占位符用尖括号括起来。从举一个简单的例子说起吧!namespace myDemo{ public class GenericDemo
2020-10-23 15:00:46 151
原创 C# 委托的理解
文章目录C# 委托的理解题记:简介委托的使用过程C# 委托的理解题记:学好一门技术语言,其实不难。首先心理上要克服畏惧的不良的情绪,在意志品质上要提高克服困难的勇气。其次,要循序渐进,逐个梳理概念上的难点。最后,就是多看手册,多练习。因为最近手头上有个C# 的项目工程,为了搞清楚里面的内容,不得不从来来回顾下C#的语言特点以及C#开发windows程序的技术要点。今天的主题是 委托简介首先了解下委托的概念:委托是C# 语言的特性。它提供类似C++语言中函数指针的功能。那委托与C++中指针函数的
2020-10-23 08:41:36 316
原创 C#事件(Event)的理解
文章目录C#事件(Event)的理解**事件的定义:**事件的类型C#事件(Event)的理解事件的定义:C# 事件(Event): 基本上说是一个用户操作,如按键、点击、鼠标移动等等,或者是一些提示信息,如系统生成的通知。应用程序需要在事件发生时响应事件。事件是委托的一个实例。事件需要在类中声明。事件使用 发布-订阅(publisher-subscriber) 模型。发布器(publisher) 是一个包含事件和委托定义的对象。事件和委托之间的联系也定义在这个对象中。发布器(publishe
2020-10-22 10:19:56 2245
原创 C#接口(Interface)理解
文章目录C#接口(Interface)理解C#接口(Interface)理解接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 “是什么” 部分,派生类定义了语法合同 “怎么做” 部分。接口只包含了成员的声明。成员的定义是派生类的责任。接口声明可以包含以下成员的声明(没有任何实现的签名):方法属性索引器事件示例:下例演示了接口实现。 在此示例中,接口包含属性声明,类包含实现。 实现 IPoint 的类的任何实例都具有整数属性 x 和 y。namespace inte
2020-10-22 07:19:45 189
原创 C#装箱和拆箱
文章目录C#装箱和拆箱题记:何为装箱和拆箱?C#装箱和拆箱题记:最近一个研究项目,需要分解C#写的一个工程软件。只好从头回顾下C#语言的特色。其中一项内容就是对C#装箱和拆箱的认识和理解。拙笔写一篇博客来记录一番。何为装箱和拆箱?想必大家都见识过和“装集装箱柜”吧,把一大堆的货物先纸箱或者托盘打包,然后整齐地放进集装箱柜。C#这里的装箱指的是把不同类型的数据打包成在一起。来看标准的手册定义:装箱是将值类型转换为“ object 类型或由此值类型实现的任何接口类型”的过程。比较拗口是吧,简而言
2020-10-21 13:42:35 319
原创 C#Socket开发TCP详解(二)
文章目录C#Socket开发TCP详解(二)--面向连接的套接字编程简介:**面向连接的套接字**1、建立连接2、发送和接收消息3、关闭连接C#Socket开发TCP详解(二)–面向连接的套接字编程简介:SOCKET(套件字)是支持TCP/IP 网络通信的基本操作单元。System.Net.Sockets 命名空间提供了TcpClient类、TcpListener类和UdpClient类。这些类封装了不同传输协议建立连接、操作方法的细节。套接字有3中不同的类型:流套接字:面向连接的TCP通信。数
2020-10-20 15:57:52 547
原创 C#socket之TCP开发详解(一)
文章目录C#socket开发详解(一)简介:预备知识:相关概念梳理:C#socket开发详解(一)简介:因为项目中有用到SOCKET 通讯,搭建一个计算的服务引擎集中处理数据(Socket Server 端),同时连多个数据采集设备(Socket Client 端)。应为Demo 程序中是C#给出的,为了更好的了解Demo程序,所以将C#socket开发技术回顾一番。事实上,Socket 应用场合有很多,该技术也是必须要掌握的。预备知识:1、C#语言特性的了解。包括语法、面向对象的程序设计(属性和
2020-10-20 13:33:57 1276
原创 C#、C++、JAVA中虚函数和抽象函数的概念对比
这两天恶补了下C#的相关内容,虚函数的概念又挖掘了下,总结如下:1、C++中函数被定义为虚函数的方法是在函数名前加virtual,虚函数可以有自己的具体内容,也可以不含有函数实现内容,称为纯虚函数。这里未指明为纯虚函数的函数均默认为非纯虚函数。纯虚函数的表示形式为virtual int getNum()=0;后面加"==0"表示函数无实现内容。含有虚函数的类可以实例化,可当作普通类来使用,但含有纯虚函数的类只能被继承后才能使用,且子类中必须实现父类的纯虚函数,这种情况下父类称为抽象类。2、java中没有
2020-10-19 15:37:19 252
原创 c#和c++中枚举类型的区别(简)
c#和c++中枚举类型的区别(简)C++中枚举类型中的每个元素,可以直接使用,不必通过类型.元素的方式调用没有++操作#include <iostream> using namespace std; enum week{Monday,Thuesday}; int main() { week day; day = Monday; day = Thuesday; //day = 4; 报错 类型转化出错 //day++; 出错,
2020-10-19 09:57:56 362
原创 C++ VS C# 结构体和对象的细微区别
C++ VS C# 结构体和对象的细微区别类与结构体在C++与C#中都是可以使用的,但是两者在两种语言中的区别却很大,今天在这里进行一下记录。在C++中,类与结构体的唯一区别就是默认访问权限的区别。在struct中,默认的访问权限为public,而在类中,默认的访问权限为private。举例一段代码,这样更容易理解:class MyClass { //无显式的访问修饰符,默认为private int Value; }; MyStruct myStruct;
2020-10-19 09:51:45 378
原创 关于c++静态类的说法
关于C++的静态类和C#中的静态类的比较在C++中,类不能有static修饰,**C++静态类是指只用于包含静态成员的类型,不能进行实例化。**当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是共享的。我们不能把静态成员的初始化放置在类的定义中,但是可以在类的外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化。静态函数只要使用类名加范围解析运算符 :: 就可以访问。静态成员函数只能访问静态成员数据、其他静态成员函数和类
2020-10-19 09:22:31 1853
原创 Qt中qDebug()技巧初探
文章目录Qt中qDebug()技巧初探一、发布时屏蔽debug 消息二、debug 程序定位三、Qt利用qDebug输出信息到文件Qt中qDebug()技巧初探一、发布时屏蔽debug 消息发布程序时,去掉debug打印,可以加快程序执行速度,减小程序体积。然而手动注释很麻烦,在pro文件里加上一行预定义宏即可。DEFINES QT_NO_DEBUG_OUTPUT二、debug 程序定位例如:qDebug() << FILE << LINE << messa
2020-10-14 09:52:04 900
原创 QML和C++混合编程--(三)
文章目录QML和C++混合编程--(三)之属性绑定简介:示例:代码过程:总结:QML和C++混合编程–(三)之属性绑定简介:属性绑定是QML的一个强有力的特性,它使得各种类型的值被自动同步更新。它的更新机制是利用信号和槽。示例:让我们来绑定color属性。效果如下单击后变为:代码过程:一、修改app.qml如下: import Charts 1.0 import QtQuick 2.0 Item { width: 300; height: 200 Row {
2020-10-13 16:50:25 115
原创 QML和C++混合编程--(二)
文章目录QML和C++混合编程--(二)之QML连接C++方法和信号简介:一、修改app.qml 文件二、修改c++中的类QML和C++混合编程–(二)之QML连接C++方法和信号简介:在上一篇中,我们讲到PieChart类的自定义,并且将该图形显示出来。本篇我们在QML中添加“ "clearChart()"方法,使能能够删除图形。效果如下:一、修改app.qml 文件那么首先我们需要在app.qml中能够调用clearChart() 方法,并且接收chartCleared()信号。修
2020-10-13 14:53:39 168
原创 QML和C++混合编程--(一)
文章目录QML和C++混合编程 (一)简介 :Chapter 1: Creating a New TypeQML和C++混合编程 (一)简介 :本教程介绍在C++应用程序中扩展使用QML。着重介绍了QML的核心特性:如属性、信号和槽。还有通过插件来销毁这些扩展。翻译来自Qt的官方的英文教程。Qt QML 提供了一些API,使得可以通过C++进行扩展。你可以自行书写这些扩展,来增加到你自己的QML类型中。简而言之,QML的类型可以通过C++进行扩展。该部分的内容可详细参考《Integrating
2020-10-12 10:01:18 285
原创 QML编程之旅 -- 事件处理
文章目录QML编程之旅 -- 事件处理1、鼠标事件QML编程之旅 – 事件处理QML也可以对键鼠事件进行处理。因为QML程序更多的是用于实现触摸式用户界面,所以更多的是对鼠标(在触摸屏上可能是手指)单击的处理。1、鼠标事件与之前的窗口部件不同,在QML中如果一个元素想要处理鼠标事件,就要在其上放置一个MouseArea元素 。也就是说,用户只能在MouseArea确定的范围内进行鼠标的动作。import QtQuick 2.0Rectangle { //定义一个矩形元素 w
2020-09-25 09:02:28 363
转载 QPushButton 点击信号分析
QPushButton 点击信号分析QPushButton有三个很重要的信号跟点击有关pressedclickedtoggled表面上看,pressed和clicked都会在点击按钮时触发,它们有什么区别呢?toggled好像有时候触发,有时候不触发,到底怎么回事呢?下面就一起聊一下这三个信号首先,这三个信号都是从QAbstractButton继承来的,也就是说,下面情况对QAbstractButton的所有子类都适用,先来看第一个问题pressed和clicked,可以编写一段代码来测试一
2020-09-08 11:03:41 270
原创 QML编程之旅 -- 元素布局
文章目录QML之旅 之元素布局1、Positioner(定位器)2、重复器3、锚点QML之旅 之元素布局概述:QML编程中可以用X,Y属性手动布局元素,但这些属性是与元素父对象左上角位置紧密相关,但是不容易确定各子元素间的相对位置。为此,QML提供了定位器和锚点来简化元素的布局。1、Positioner(定位器)定位器是专用于定位的一类元素。主要有Row,Column、Grid和Flow等,它们都包含在QtQuick模块中。2、重复器重复器用于创建大量相似的元素成员,常与其他定位器结合起来使用
2020-09-07 10:22:23 124
drawPolygonDemo.rar
2020-08-25
Scratch 62节课 教案设计和源码.rar
2019-12-05
Scratch教案合集.rar
2019-12-05
Scratch 英文资料.rar
2019-11-27
ISO IEC 24730-62-2013.doc
2020-10-12
mySemaphores.rar
2020-04-30
threadComputerDemo.rar
2020-04-29
Qt 多线程.rar
2020-04-23
Qt GraphicsView 添加图元.rar
2020-03-13
Qt 基于定时器的动画.rar
2020-02-28
信息奥赛NOIP提高组历年真题与解答
2020-02-15
信息奥赛NOIP普及组历年真题与解答.rar
2020-02-15
Fang TDOA.rar
2020-01-15
信息奥赛一本通解题题库.pdf
2019-12-30
信息奥赛一本通题解目录.chm
2019-12-29
18款 Scratch 趣味游戏合集.rar
2019-12-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人