只为小站
首页
域名查询
文件下载
登录
九轴姿态解算方法[可运行源码]
本文介绍了使用STM32和MPU9250进行九轴姿态解算的方法,重点讲解了梯度下降法在姿态融合中的应用。作者首先定义了用于存储传感器数据的结构体,并详细展示了姿态解算的代码实现。代码中包括了对加速度计、陀螺仪和磁力计数据的处理,以及如何通过梯度下降法计算纠正误差并更新四元数。最后,文章还介绍了如何将四元数转换为欧拉角,以便于实际应用。该方法适用于四轴飞行器等需要精确姿态控制的场景。 在现代科学技术中,姿态解算技术扮演着至关重要的角色,尤其是在飞行器控制领域。飞行器需要准确地了解自身的姿态,以便于执行精准的动作控制。本文详细介绍了如何使用STM32微控制器和MPU9250传感器进行九轴姿态解算。MPU9250是一款集成了三个传感器——加速度计、陀螺仪和磁力计的惯性测量单元(IMU),能够提供关于运动状态的完整信息。 文章的核心内容围绕梯度下降法的应用,这是一种优化算法,用于姿态解算中的误差校正。作者定义了特定的数据结构来存储传感器采集的数据,并展示了完整的代码实现过程。这些代码详细处理了加速度计、陀螺仪和磁力计的数据,并通过融合这些数据计算出物体的姿态信息,即四元数。四元数是一种避免了万向锁问题的数学工具,它能够有效地表示和计算三维空间中的旋转。 在四元数的基础上,文章还阐述了如何将其转换为更为直观的欧拉角。欧拉角是工程师和开发者在实际应用中更常见的表示方式,因为它直接对应于飞行器的滚转角、俯仰角和偏航角。这样的转换使得姿态解算的结果更容易被理解和利用。 该方法的实施不仅限于理论研究,它已被应用于实践,尤其是对四轴飞行器等需要精确控制姿态的场景。这些飞行器在保持稳定飞行、执行机动动作或进行精确着陆时,都需要依赖于精确的姿态信息。通过使用九轴姿态解算技术,飞行器能够实时地调整自己的姿态,以适应不同的飞行条件和任务要求。 在软件开发层面,作者提供了可运行的源码,这为相关的开发人员提供了一个便利的工具。源码通常包括了算法的实现、数据处理以及与硬件通信的接口,使得开发者能够快速集成到自己的项目中。源码的共享是软件开发社区的一个重要实践,它促进了知识的共享与技术的进步。 在文章的末尾,作者还可能讨论了该方法的局限性和改进的可能性,例如传感器的误差补偿、环境干扰的过滤以及算法效率的优化等。但是根据题目要求,这里不做进一步的分析和假设。 文章提供了一个详细的示例项目,其中包含了完整的源代码,供读者下载和使用。通过这个项目,读者可以更加直观地理解九轴姿态解算的整个过程,并将其应用于自己的工程实践中。在实际应用中,开发者可以在这个基础上进行定制化的修改和优化,以满足特定项目的需要。
2026-05-14 10:38:28
12KB
软件开发
源码
1
RSlinx建立OPC方法
RSLinx是AB专门开发的用于与AB所有智能产品进行通讯的软件,具有强大的通讯和网络搜寻功能。
2026-05-13 15:12:29
134KB
rslinx
1
stata使用方法 统计软件stata详细使用指南
Stata是一款广泛应用于社会科学、医学研究、经济学以及教育领域的强大统计分析软件。它以其直观的命令语法和丰富的图形输出而闻名。本指南将详细介绍Stata的使用方法,帮助你掌握这款统计软件的基本操作和高级功能。 一、Stata界面与基本操作 Stata拥有简洁的用户界面,主要包括命令窗口、结果窗口、数据窗口和图形窗口四个部分。在命令窗口中输入指令,执行后在结果窗口显示输出结果;数据窗口用于查看和编辑数据;图形窗口则用于展示各类统计图。 二、数据管理 1. 数据导入导出:Stata支持多种数据格式,如.dta(Stata默认格式)、.csv、.txt等,可以通过`import delimited`或`import dataset`命令导入,`save`命令导出。 2. 数据清理:通过`edit`命令打开数据编辑器,可以进行变量命名、缺失值处理、数据排序等操作。 3. 数据转换:`generate`命令创建新变量,`replace`修改已有变量,`reshape`用于数据透视。 三、描述性统计 `summarize`命令可快速得到变量的均值、标准差、最小值、最大值等统计量。`des`或`describe`命令列出所有变量的信息,包括变量名、类型、存储形式及观测数。 四、回归分析 1. 线性回归:`regress`或简写`reg`命令进行线性回归分析,`predict`用于预测值计算。 2. logistic回归:处理分类变量,使用`logit`或`ologit`命令。 3. probit回归:适用于连续因变量的受限模型,用`probit`命令。 五、面板数据处理 Stata提供了强大的面板数据工具,如`xtset`指定面板数据结构,`xtreg`进行固定效应或随机效应模型分析。 六、生存分析 Stata的生存分析功能强大,包括Kaplan-Meier估计、Cox比例风险回归等,使用`survival`和`stcox`命令。 七、多变量分析 1. 聚类分析:`cluster`命令实现数据聚类。 2. 因子分析:`fa`或`factor`命令进行因子提取。 3. 主成分分析:`principal`或`pca`命令进行主成分提取。 八、绘图 Stata的图形功能强大,如`scatter`绘制散点图,`histogram`画直方图,`line`画折线图,`twoway`命令则用于创建复杂的双变量图形。 九、编程与宏 1. `do`文件:Stata的批处理文件,可以编写自定义的程序。 2. 宏:`local`和`global`分别用于局部和全局宏,方便变量替换和程序复用。 十、版本与更新 Stata有多个版本,如SE(标准版)、MP(多处理器版)等,不同版本支持的数据量和并行计算能力不同。定期使用`update`命令更新软件到最新版本,获取更多功能和改进。 通过深入学习和实践这些知识点,你可以熟练掌握Stata的使用,进行各种复杂的数据分析和统计建模。记得不断探索和尝试,Stata的强大功能远不止于此。
2026-05-12 17:50:41
6.28MB
stata
1
磁盘阵列卡的安装方法
RAID将普通硬盘组成一个磁盘阵列,在主机写入数据,RAID控制器把主机要写入的数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据时,RAID控制器并行读取分 散在磁盘阵列中各个硬盘上的数据,把它们重新组合后提供给主机。由于采用并行读写操作,从而提高了存储系统的存取程度。此外,RAID磁盘阵列还可以采用 镜像、奇偶校验等措施,来提高系统的容错能力,保证数据的可靠性。 磁盘阵列卡,或称RAID卡,是服务器中用于构建RAID(廉价冗余磁盘阵列)的关键组件,旨在提升存储系统的性能和数据可靠性。RAID通过将数据分布在多个硬盘上,实现了并行读写操作,从而显著提高了数据存取速度。同时,通过镜像或奇偶校验等技术,RAID还能增强系统的容错能力,确保在单个硬盘故障时仍能保持数据的完整性。 RAID有多种级别,每种级别具有不同的特性和适用场景: 1. **RAID 0**:数据分块并行传输,无冗余,提高速度,但无容错性。若任何一块硬盘故障,数据将丢失。 2. **RAID 1**:镜像模式,数据在两块硬盘间同步,提供高容错性,但空间利用率仅为50%。 3. **RAID 2** 和 **RAID 4**:不常用,一般不推荐在实际环境中使用。 4. **RAID 3**:类似RAID 0,但加入奇偶校验,提高了数据恢复能力,但奇偶校验硬盘可能成为瓶颈。 5. **RAID 5**:更高级的奇偶校验,奇偶校验信息分散在所有硬盘上,解决了RAID 3的瓶颈问题,提供了良好的性能和容错性。 除了硬件RAID,还可以通过软件实现RAID功能,如Windows NT的磁盘分条、带奇偶校验的磁盘分条、磁盘镜像和双工,分别对应RAID 0、RAID 1和RAID 5。软件RAID成本较低,但性能可能不如硬件RAID。 在安装磁盘阵列卡时,通常需要遵循以下步骤: 1. 设置系统启动优先级,如从光驱启动。 2. 安装RAID卡,重启系统,RAID卡应在自检过程中被识别。 3. 进入RAID卡配置界面,选择合适的RAID级别(如RAID 1),创建主分区。 4. 系统可能会提示找不到SCSI驱动,这是正常现象,因为硬盘通过RAID卡连接。 5. 使用服务器安装光盘进行操作系统安装,根据提示设置分区大小。 以HP ML370 G3服务器为例,安装HP642阵列卡,需要遵循上述步骤,确保服务器配置正确,以便充分发挥RAID的优势。对于需要高可用性的系统,RAID 1可能是理想选择;而对于追求速度的用户,RAID 0可以提供更高的数据传输速率,但牺牲了数据安全性。因此,选择RAID级别时应根据具体需求权衡性能和容错性。
2026-05-10 15:15:33
24KB
1
python自动录制web端系统自动化脚本(python脚本自动生成),包括python环境搭建、模块安装(离线环境)、ms-playwright离线安装方法
在当今信息时代,自动化技术已成为提升工作效率的重要工具。特别是在Web端系统操作中,将重复性的任务自动化可以大大节省人力资源,提高工作效率。本文将详细介绍如何利用Python进行Web端系统自动化脚本的录制与生成,涵盖从环境搭建到模块安装,再到最终脚本的自动生成与执行,尤其适合于有网和无网络(离线环境)的情况。 自动化脚本的执行可以替代人工进行繁琐的操作步骤,从而释放人力进行更有创造性的工作。支持有网环境及离线环境的自动化,无论在何种网络条件下都能保证自动化脚本的顺利执行。此外,一旦环境搭建完成,仅需录制一次操作,即可生成脚本,实现无限次的自动执行。 为了实现这一过程,需要进行几个关键步骤。首先是Python环境的搭建。Python的安装相对简单,用户可根据操作系统的不同选择合适的Python版本进行安装。推荐安装Python 3.11版本,因为该版本对最新功能支持较好,同时也能保证良好的兼容性。在安装完成后,需要确保Python的环境变量配置正确,以便在命令行中顺利调用Python解释器。 接下来是模块安装环节,其中包括在线环境下通过pip等包管理器安装所需的库,以及在离线环境下进行模块的下载与迁移。对于离线环境,可以提前在有网络的机器上下载好所需的模块,并将模块压缩包传输到离线环境中进行安装。该步骤中涉及的文件包括"python中模块下载以及迁移.txt",详细记录了模块下载与迁移的操作流程,"2.moudle.zip"则包含了需要迁移的模块压缩包。 此外,环境安装说明.txt文件对Python环境的搭建和模块安装提供了详细的指导,是确保整个自动化脚本生成流程顺畅的重要文档。对于ms-playwright浏览器的离线安装,提供了专门的ms-playwright.zip压缩包和ms-playwright浏览器路径.txt文件,以便在无网络条件下完成安装。 脚本自动生成.txt文件详细阐述了自动化脚本的录制过程及生成原理,为用户提供了一个清晰的操作指南。通过该过程,用户可以录制一次操作,并通过特定的脚本自动生成工具转换为可执行的Python脚本。该脚本可以用于反复执行之前录制的操作步骤。 整个自动化过程中,"3.ms-playwright.zip"和"1.python3.11.zip"分别提供了安装ms-playwright和Python 3.11所需的压缩文件。而"截图python脚本-参考"则为用户提供了一个可参考的脚本截图,帮助理解脚本结构和内容。 通过本文的介绍,读者可以了解如何通过Python实现Web端系统自动化脚本的录制与生成,从环境搭建、模块安装到脚本自动生成,形成了一套完整的自动化解决方案。这种自动化不仅可以提升工作效率,还可以减少因重复性操作而可能导致的错误。
2026-05-09 13:48:47
739.32MB
python
playwright
自动化脚本
操作录制
1
易语言程序禁止多开的方法之一
在IT领域,程序多开指的是一个应用程序被用户同时运行多个实例。这在某些情况下是必要的,比如测试或者对比不同设置的效果。然而,在某些特定场景下,开发者可能希望防止用户开启多个程序实例,以确保程序的稳定性和数据一致性。本文将详细讲解如何使用易语言来实现程序禁止多开的方法之一。 易语言,全称“简易编程语言”,是一种以中文为编程语句的编程工具,旨在降低编程难度,让更多人能够接触和学习编程。它提供了丰富的函数库和简单易懂的语法,适合初学者和快速开发。 禁止多开的方法通常基于以下几个核心原理: 1. **文件锁**:创建一个临时文件或锁定文件,当程序启动时检查该文件是否存在或被锁定。如果存在,则表示另一个程序实例正在运行,此时新的实例将不再继续执行,而是提示用户已有程序运行。 2. **注册表键**:利用注册表来记录程序是否已经运行。启动时检查特定注册表键,如果存在,则表明其他实例已运行,阻止新实例启动。 3. **进程检测**:通过遍历系统中运行的进程列表,查找本程序的进程名。若发现相同进程,说明已有实例运行,阻止新实例。 4. **网络端口占用**:程序启动时绑定到一个特定的网络端口,若端口已被占用,表示有其他实例运行,新实例无法启动。 对于易语言来说,实现禁止多开的方法之一可能是使用文件锁。下面是一个简单的实现步骤: 1. **创建临时文件**:在程序启动时,尝试在程序的执行目录或指定位置创建一个临时文件。 2. **文件锁检测**:如果创建失败,检查错误信息,如果是因为文件已存在,说明另一个实例正在运行。 3. **提示用户**:在检测到已有实例运行的情况下,弹出消息框告知用户,并终止程序的运行。 4. **程序退出**:程序退出时,删除创建的临时文件,释放文件锁。 以下是一个基本的易语言代码框架示例: ```易语言 .定义 文件路径 字符串型 文件锁标识 .定义 错误信息 字符串型 .如果 文件存在(文件锁标识) .消息框("已经有程序正在运行,请不要重复打开!", 0, "警告") .结束程序运行 .否则 .如果 .文件创建(文件锁标识) = -1 .错误信息 = .错误信息获取() .如果 .错误信息 不等于 "" .消息框("无法创建文件锁:" + .错误信息, 0, "错误") .结束程序运行 .否则 .// 程序正常启动,进行其他操作... .结束如果 .结束如果 .结束如果 ``` 以上是易语言实现程序禁止多开的基本思路和代码框架。实际应用中,可能需要根据具体需求进行调整,例如添加更多的错误处理机制,或者选择其他更适合的禁止多开方法。在编程实践中,理解并灵活运用这些原理,可以有效地管理和控制程序的运行状态,确保程序运行的正确性和稳定性。
2026-05-08 20:05:42
3KB
易语言程序禁止多开的方法之一源码
1
IOS 签名错误codesign failed with exit code 1解决方法
在iOS应用开发过程中,签名是确保应用程序安全性和可信任性的关键步骤。然而,开发者经常会遇到“codesign failed with exit code 1”的错误,这通常意味着代码签名过程中出现了问题。这个错误可能由多种原因引起,包括证书配置错误、权限问题、钥匙串中的冲突等。以下是对该问题的详细分析及解决方案: 1. **证书与Provisioning Profile问题**: - 在iOS开发中,开发者需要拥有正确的Apple Developer账户,并创建对应的证书(Development或Distribution)和Provisioning Profile。 - 如果出现“codesign failed with exit code 1”,首先检查是否正确安装了这些证书,以及Provisioning Profile是否包含了目标设备的UDID。 - 检查证书类型:Development证书用于调试,而Distribution证书用于App Store发布或Ad Hoc分发。确保在正确的情境下使用正确的证书。 2. **钥匙串冲突**: - 错误日志中提到的冲突通常发生在钥匙串的不同区域,如登录和系统区域。如果在多个地方存在相同标识符的证书,可能会导致签名失败。 - 打开钥匙串访问应用,检查登录和系统钥匙串中是否存在重复或冲突的证书。如果有,删除多余的或者不匹配的证书。 - 删除证书前,务必确认它们不是当前项目所需要的,以免影响正常签名过程。 3. **Xcode设置**: - 检查Xcode的构建设置,确保"Code Signing Identity"和"Provisioning Profile"设置正确无误,匹配当前项目的证书和Provisioning Profile。 - 在Xcode的Target设置中,选择正确的Build Settings,然后搜索“Code Signing”进行核对。 4. **清理并重新构建**: - 清理项目(Product > Clean),有时这能解决临时的签名问题。 - 如果问题仍然存在,尝试删除DerivedData目录(位于~/Library/Developer/Xcode/DerivedData/),这会清除所有编译缓存和临时文件。 5. **系统权限问题**: - 确保你的用户账号有足够权限执行codesign命令。如果没有,你可能需要修改文件或目录的权限,或者以管理员身份运行Xcode。 6. **更新工具和软件**: - 确保你的Xcode和相关工具(如Command Line Tools)是最新的,因为旧版本可能不支持最新的签名流程。 7. **检查Entitlements文件**: - 如果你的应用使用了Entitlements(如Push Notifications或App Groups),确保Entitlements文件设置正确,并且与Provisioning Profile匹配。 8. **重新生成证书和Provisioning Profile**: - 如果上述方法都无法解决问题,可能需要在Apple Developer Portal中重新生成证书和Provisioning Profile,然后重新下载并安装。 解决“codesign failed with exit code 1”错误需要耐心和细心的排查,涉及多个层面的检查和调整。通过逐一排查上述步骤,大部分情况下都能找到问题的根源并解决。如果问题依然存在,建议查阅Apple官方文档或社区论坛获取更多帮助。
2026-05-07 17:48:38
269KB
IOS
签名错误
codesign
failed
1
Fe-Mo/ZSM-5蜂窝催化剂上NO_x的催化还原性能
Fe-Mo/ZSM-5具有较好的NOx催化活性,比较了不同粉末的制备方法、催化剂助剂和载体等因素对蜂窝状催化剂催化还原性能的影响.结果表明,气相离子交换法制备的蜂窝状催化剂的催化活性最好,在350℃时NOx转化率已达到90%以上,在高温400℃~600℃范围,催化剂对NOx的催化还原转化率保持在98%.K+离子的加入明显提高了Fe-Mo/ZSM-5催化剂活性,可能调变了催化剂的表面性质,催化剂粉末在载体上的浸涂次数为2次时效果最佳.
2026-05-05 18:27:28
304KB
氮氧化物
涂覆方法
催化还原
1
MCU固件加密,以STM32为例提供二级密钥方法,加密过程简单
MCU固件加密是保障嵌入式系统安全的重要手段,特别是在物联网、智能家居等对数据安全性有较高要求的领域。本文将以STM32微控制器为例,介绍一种简单的二级密钥加密方法,旨在提高固件的安全性,增加破解难度,降低非法访问的风险。 STM32是一款广泛应用的基于ARM Cortex-M内核的微控制器,其内置的安全特性使其成为固件加密的理想平台。在加密过程中,我们通常会使用公钥/私钥加密算法,如RSA,或者对称加密算法,如AES。但是,仅依赖这些基础加密手段可能不足以抵御高级攻击者。因此,引入二级密钥机制可以进一步增强保护。 一级密钥通常是设备出厂时预置的硬编码密钥,存储在MCU的安全存储区域,如OTP(一次性可编程)内存或安全存储器。这个密钥不被明文传输,增加了初始的防护层。然而,一级密钥可能会因各种原因暴露,如供应链攻击或者物理窃取。这时,二级密钥就显得至关重要。 二级密钥是在设备运行时动态生成的,通常基于一级密钥和其他设备特定的信息,如MAC地址、序列号等。这样,即使一级密钥被泄露,攻击者也需要获取到设备的实时状态信息才能解密固件,极大地增加了破解的难度和成本。此外,二级密钥可以定期更换,进一步提升安全性。 实现二级密钥的过程大致如下: 1. 设备启动时,读取存储的一级密钥。 2. 收集设备特有的状态信息,如设备ID、随机数等。 3. 使用预定义的加密算法(如AES),将一级密钥与设备状态信息进行混合,生成二级密钥。 4. 使用二级密钥对固件进行解密,然后执行。 5. 在需要时,可以更新二级密钥,确保持续的安全性。 在实际应用中,还需要注意以下几点: - 固件的完整性校验:在解密前,应验证固件的完整性,防止中间人攻击篡改。 - 错误处理策略:当密钥生成或解密过程中出现错误,应有适当的错误处理策略,避免信息泄露。 - 安全更新机制:固件更新时,需使用相同的一级密钥和设备状态信息重新生成二级密钥,以解密新的固件。 - 物理防护:除了软件层面的加密,也要考虑物理防护措施,如芯片封装防止探针探测,防止硬件逆向工程。 通过上述二级密钥方法,我们可以为STM32固件提供更强大的安全保障,使得非法获取和使用固件变得更加困难。结合其他安全措施,如数字签名、安全启动等,可以构建一个全方位的固件安全防护体系。在实际项目中,开发者应根据具体需求和安全等级来选择合适的加密策略,并不断更新和完善,以应对日益复杂的网络安全挑战。
2026-05-05 15:56:53
39.69MB
1
自定义AlertDialog去除黑色背景的解决方法
自定义AlertDialog去除黑色背景的解决方法 在 Android 开发中,AlertDialog 是一个常用的对话框组件,用于提示用户或获取用户输入。然而,在默认情况下,AlertDialog 会显示一个黑色的背景,这可能会影响应用程序的视觉体验。今天,我们将分享一个自定义AlertDialog 去除黑色背景的解决方法。 使用自定义样式去除黑色背景 要去除黑色背景,需要创建一个自定义样式,然后在 AlertDialog.Builder 中引用该样式。具体来说,可以按照以下步骤操作: 1. 在 res/values/styles.xml 文件中添加一个新的样式: ```xml ``` 这个样式将背景颜色设置为透明,然后将窗口标题和阴影去掉。 2. 在 Java 代码中,创建 AlertDialog 并引用自定义样式: ```java private AlertDialog dialog; private void showdialogCashOut() { dialog = new AlertDialog.Builder(this, R.style.dialogNoBg).create(); // ... } ``` 为什么需要自定义样式 在默认情况下,AlertDialog 的背景颜色是黑色的,这可能会影响应用程序的视觉体验。通过创建自定义样式,可以将背景颜色设置为透明,从而去除黑色背景。 其他注意事项 在使用自定义样式时,需要注意以下几点: * 在自定义样式中,背景颜色需要设置为透明,否则将不会生效。 * 在布局文件中,根 Layout 的背景颜色也需要设置为透明,否则将不会生效。 * 在 Java 代码中,需要正确地引用自定义样式,否则将不会生效。 总结 本篇文章分享了一种自定义AlertDialog 去除黑色背景的解决方法,通过创建自定义样式和在 Java 代码中引用该样式,可以去除黑色背景。这种方法简单、实用,能够提高应用程序的视觉体验。
2026-05-04 19:20:02
36KB
AlertDialog
黑色背景
1
个人信息
点我去登录
购买积分
下载历史
恢复订单
热门下载
BP神经网络+PID控制simulink仿真
刚萨雷斯《数字图像处理》第四版答案.pdf
MATLAB车牌识别系统
拾荒者.exe同时ID扫描器IP扫描器
基于YOLOV5的车牌定位和识别源码.zip
多机器人编队及避障仿真算法.zip
ios无人直播 虚拟视频实用版 可以导入视频
随机森林用于分类matlab代码
sqlite运行所需Vc++运行环境,纯净版System.Data.SQLite.dll及SQLite.Interop.dll
中国地面气候资料日值数据集(V3.0)2014-2019.zip
20200318附加-2019年电赛综合测评方案详细计算过程(pdf版本,有朋友反映word版本乱码,特意转为pdf)
scratch版 我的世界.sb2
transformer_pytorch_inCV.rar
2010年-2020中国地面气候资料数据集(V3.0)
韦来生《数理统计》课后习题与答案
最新下载
汇顶量产测试工具GTPV4.6.15.6
思科防火墙ASAv镜像文件.rar
电工杯历年优秀论文.rar
Android ffmpeg .a .so库(ffmpeg 4.4.1)
DBA 攻坚 左手Oracle右手MySQL
jdk1.8 64位官方正式版 jdk-8u91-windows
Converge Console 4.15.0.1.exe
硬盘ID序列号修改器
雷赛smc-6480资料
alinx_opencv_3.1.0.tar.gz
其他资源
南京大学软件学院软件体系结构作业
C#截屏插件 (DLL)
moea/d算法代码
医药采购系统
STM32F767核心板封装库
高品质的Bootstrap3.0主题模板7个
2019年5月软考高项信息系统项目管理师(题目书)
顺德区2018-2019学年度第二学期四年级英语期末试卷及答案.pdf
current_limiting_PI.mdl(微网限流控制策略)
fsong_GB2312.rar
一篇关于FPGA的英文文献及翻译
TTL转RS232通讯转接板PCB
Ultrawave安装包
NotifyIcon
晨风QQ群机器人破解无限期版本(完美可以)
图书馆管理系统
自动控制原理(胡寿松4版)习题答案
基于jsp的网络在线订票系统
针式打印器模拟终端
第一本无人驾驶技术书.刘少山(高清PDF+详细书签)_入门推荐