在处理NC6X报表数据加工构建语义模型的返回SQL篇时,首先需要明确数据加工的三种方式,包括返回查询SQL、返回成果集DataSet以及返回数据表。在选择实现方式时,需要根据数据获取的难易程度来定,一般情况下,能够通过SQL查询出来的数据优先采用返回SQL的方式;如果数据来源多样,需要东拼西凑,则优先采用返回DataSet的方式;返回TABLE的方式使用较少,通常用于特定场景,并将在后续提供案例。 实现过程主要包含以下几个关键步骤: 1. 明确报表的数据加工逻辑,这通常需要先编写数据加工代码,而不是先配备好语义模型和自由报表。明确取数逻辑后,设计大致的代码框架,并定义查询条件及数据类型。 2. 设计语义模型的接口和实现类,创建属于特定模块的接口和实现类,并准备相应的接口文档。接口参数通常包括com.ufida.dataset.IContext或nc.pub.smart.context.SmartContext,这是报表的上下文环境。 3. 在DataSet返回方式的实现类中定义元数据列及其数据类型,而SQL返回方式则不需要这一步骤。 4. 编写报表取数逻辑代码,根据设定的查询变量值编写代码和判断逻辑,最终返回数据。 5. 在语义模型-集团(或全局节点)定义与模型相关的接口,并在界面设计时调用数据加工接口代码。通过数据加工,可以动态地获取报表字段列。 6. 在自由报表设计中,引入已做好的语义模型文献,并设计报表界面和相关记录。 7. 发布自由报表节点,针对是否使用组织字段进行相应的设置,并分配正确的报表节点类型。 8. 分配报表节点权限,制作并分派报表查询模板。 9. 测试查询模板,进行接口实现类的断点调试,完成查询参数初始化和查询条件值校验。 10. 完成后,导出代码补丁、报表文献补丁、SQL脚本补丁,并提供给实施人员进行验证。 在整个过程中,有几个注意事项需要特别关注: - 报表上下文context在未分配查询模板之前,通常不包含数据,因此需要在实现类中定义全局变量查询条件并默认赋值,以便于调试。 - 推荐在接口实现类中定义全局变量查询条件,并默认赋值,便于后续调试。 -DataSet返回方式需要在实现类中定义好元数据列及数据类型,而SQL返回方式则无需此操作。 - 在自由报表设计界面中,针对有组织查询条件的报表,必须设立集团和组织字段。 - 在报表节点发布时,需要根据报表是否使用组织字段来确定发布集团类型节点还是具体组织节点。 - 报表设计完成后,需要进行分派报表节点权限、制作查询模板等后续操作。 在完成所有步骤后,确保报表能够正常显示,并能通过查询模板进行数据加载。进行代码补丁和SQL脚本补丁的导出,完成整个报表数据加工的实现。
2025-08-24 18:08:30 1.8MB
1
YOLOv8是一款基于深度学习的目标检测模型,其性能优越且具有较高的实时性。在《主干网络篇 - YOLOv8更换主干网络之GhostNet》中,我们将探讨如何将GhostNet作为YOLOv8的基础网络架构,以提升模型的检测效果。GhostNet是一种轻量级的卷积神经网络(CNN),它通过引入Ghost模块,实现了在计算资源有限的情况下提高模型的效能。 Ghost模块是GhostNet的核心创新点。这个模块主要由两部分组成:基础操作(如1x1卷积)和扩展操作。基础操作负责生成简单的特征,而扩展操作则通过对这些简单特征进行变换,生成更多的特征。这种设计使得模型能在不显著增加计算量的同时,获得更丰富的特征表示,对于目标检测任务尤其有利。 YOLO系列算法以其快速的检测速度和相对较高的精度受到广泛关注。YOLOv8是对前几代YOLO模型的改进,其优化了网络结构,提升了模型的检测性能。在更换主干网络时,选择GhostNet的主要原因是它的高效性和轻量化特性,这使得模型在保持高准确度的同时,可以在低功耗设备上运行。 在实现《主干网络篇 | YOLOv8更换主干网络之GhostNet》的过程中,我们需要完成以下步骤: 1. **导入GhostNet模型**:我们需要导入预训练的GhostNet模型权重,这通常是通过加载预训练模型的权重文件完成的。这有助于模型在迁移学习过程中快速收敛。 2. **修改YOLOv8模型结构**:在YOLOv8的原始架构基础上,替换掉原有的主干网络,将其与GhostNet连接。这可能涉及到调整卷积层、池化层、批归一化层以及激活函数的位置和数量。 3. **训练与微调**:在替换主干网络后,需要对整个模型进行训练。由于GhostNet已经预训练过,因此可以从小的学习率开始,进行微调。这样既能利用预训练权重,又能适应YOLOv8特定的目标检测任务。 4. **评估与优化**:通过验证集对模型进行评估,观察更换GhostNet后的检测性能变化。如果性能提升不明显或者有下降,可能需要调整学习率、优化器参数或者增加数据增强策略。 5. **实战应用**:当模型达到满意的效果后,可以将其部署到实际应用中,例如智能安防、自动驾驶等领域。 在"ultralytics-main"这个压缩包文件中,很可能包含了实现上述过程的源代码,包括模型结构定义、训练脚本、数据处理工具等。通过研究这些代码,读者可以深入理解如何将GhostNet整合进YOLOv8,并学习到目标检测模型的训练和优化技巧。对于初入行的人工智能学习者和YOLOv8算法初学者来说,这是一个很好的实践项目,能帮助他们巩固理论知识,提升动手能力。
2025-08-19 17:41:22 304.48MB 网络 网络
1
自己撰写的几篇自认为还可以的网络规划师论文。23年一次性通过考试后,发现论文都没用上,就提供给大家分享了。23年一共准备了9篇,分别是: 1.(定稿)论某单位的存储网络改造设计0811 2.(定稿)论某单位的网络安全设计0718-改2 3.(定稿)论某单位的网络结构升级及安全设计0402 4.(定稿)论某公司的IPv6网络升级设计0914 5.(定稿)论某XX省某工业园区的无线网络设计1009 6.(定稿)视频监控系统建设0824 7.(定稿)数据中心升级规划设计0630-改1 8.(定稿)论某XX集团二级数据中心改造升级0902 9.(定稿)论某高校的园区网络升级设计0418 后面几篇我再上传
2025-08-15 15:21:42 62KB 网络 网络 网络安全 毕业设计
1
超声波测距技术是一种应用广泛的非接触式距离测量技术。它的基本原理是通过发射超声波脉冲,并接收由物体反射回来的回波,然后通过测量发射和接收之间的时间差来计算距离。这一技术在机器人避障、汽车倒车雷达、液位检测等领域有广泛应用。 超声波测距传感器的硬件设计是实现测距功能的基础。设计者需要考虑测距传感器的核心元器件选择,如发射和接收的超声波换能器、放大器、微控制器等。在超声波发射端,换能器需要能够将电信号转换成声波,并且在接收端将声波转换回电信号。考虑到驱动功率和信号质量,超声波发射器通常需要高于一般数字电路的电压驱动,例如10V以上,且最好是正弦波信号,以避免压电陶瓷的非线性效应。 在接收端,为了提高传感器的灵敏度和抗干扰能力,常常使用带通滤波器来过滤接收信号,并通过模拟电路放大有用信号。高集成度的超声波测距专用芯片可以简化电路设计,例如文中提到的TL852芯片,它集成了可变增益放大和检测功能,能够提高检测的灵敏度同时减小干扰。然而,这些专用芯片的价格可能较高,设计者也可以选择通用的微控制器来替代部分专用芯片功能,如文中提到的STC12系列单片机。 微控制器在这里扮演着核心控制单元的角色,它负责控制超声波的发射、接收时间间隔、信号的放大和滤波处理,并进行距离计算。微控制器的选择应考虑到与单片机的兼容性、编程的方便性以及是否能够满足系统的要求,例如运算速度、存储空间、I/O口的数量等。 在设计过程中,还需考虑硬件设计的可扩展性和学习功能,使得DIY者可以在现有基础上进行改进和创新。为了方便学习者理解和操作,设计者可以选用SOP20封装形式的微控制器,因为它们尺寸适中,便于焊接和调试。此外,设计者还可以采用模块化的设计思想,将收发模块分开,便于理解超声波测距的原理。 软件设计同样重要,它涉及到微控制器的程序编写,包括超声波的发射与接收控制、时间测量、距离计算、串口通信等。软件设计时通常会使用定时器中断来精确测量时间,以及使用串口通信协议来输出数据,这样可以使程序的运行更加稳定和高效。 在硬件组装方面,设计者需要注意电路板的布局和元件的焊接质量。使用表面安装器件(SMD)可以减小体积,但相应的焊接工艺要求更高。对于需要调试或更换的元件,设计者可能会选择直插式器件,以便于调整和替换。在组装过程中,电路板的布局需要考虑到信号传输的完整性,以及电源和地线的合理分布,以减少噪声干扰。 文档强调了设计的实用性和教学目的。设计者希望自制的超声波测距传感器不仅能够用于学习和DIY,而且还能够在实际应用中发挥作用,如用于小型车辆的测距,这需要传感器具有一定的检测距离和准确度。通过使用单片机来控制超声波的发射和接收过程,可以达到这一目的。同时,通过UART口来输出数据和设置参数,可以方便地进行通信和调试。
2025-07-30 17:03:39 2.36MB 超声波测距
1
【智能排队叫号系统】让你告别漫长等待! **大屏幕投屏** - **功能概述**:把电脑屏幕“飞”到大屏幕上,信息一目了然!使得信息更加直观地展示给所有在场人员 快来体验科技带来的便捷吧~。 - **应用场景**:适用于需要向公众展示实时排队状态、当前处理进度等情况的场所,比如医院、银行等。 **微信扫码取号** 二维码扫一扫,轻松加入排队大军! 不用排队也能心中有数~ - **功能概述**:提供一个二维码供用户扫描以加入等待队列,简化了传统手动登记的过程。 - **安全措施**:可以设置每个微信号每天只能取一次号,防止重复领取;同时也可以限制同一设备短时间内多次尝试登录。 **现场手动取号** 没手机?没关系!我们的工作人员会帮你搞定一切! - **适用对象**:主要面向没有智能手机或遇到特殊情况无法自行完成线上操作的人群。 **个性化配置** 时间、人数、提醒...你的排队你做主! 人数限制、语音提醒次数、是否允许跳号、是否需要填写信息、到号提醒...统统可以调!
2025-07-29 21:10:59 16.98MB 源码
1
访问非连续的地址 现在系统中很少再预留连续的memory,如果Master需要很多memory,可以通过SMMU把一些非 连续的PA映射到连续的VA,例如给DMA,VPU,DPU使用。 32位转换成64位 现在很多系统是64位的,但是有些Master还是32位的,只能访问低4GB空间,如果访问更大的地址 空间需要软硬件参与交换memory,实现起来比较复杂,也可以通过SMMU来解决,Master发出来 的32位的地址,通过SMMU转换成64位,就很容易访问高地址空间。 限制Master的访问空间 Master理论上可以访问所有的地址空间,可以通过SMMU来对Master的访问进行过滤,只让 Master访问受限的区域,那这个区域也可以通过CPU对SMMU建立页表时动态控制。 用户态驱动 现在我们也看到很多系统把设备驱动做在用户态,调用驱动时不需要在切换到内核态,但是存在一 些安全隐患,就是用户态直接控制驱动,有可能访问到内核空间,这种情况下也可以用SMMU来实 现限制设备的访问空间 设备虚拟化 例如设备虚拟化有多种方式,Emulate,Para-virtualized,以及Pass-t
2025-07-28 10:57:31 1.53MB ARM armv9
1
内容概要:本文全面介绍了MCP(Model Context Protocol)服务器的开发与部署流程,涵盖了从技术入门到实际项目开发的各个方面。文章首先解释了MCP技术的本质及其相较于传统Function calling技术的优势,强调了其在智能体开发中的效率革命。接着,通过一个具体的Mini DeepResearch项目,详细描述了MCP服务器的开发步骤,包括创建功能函数、项目结构搭建、依赖管理、编写核心代码等。此外,文章还探讨了不同传输方式(如stdio、SSE、HTTP流式传输)的特点及适用场景,并通过实例演示了如何创建基于SSE和HTTP流式传输的MCP服务器。最后,针对HTTP流式传输的特殊性,提供了一种自定义MCP客户端的实现方法。 适用人群:具备一定编程基础,特别是对Python有一定了解的研发人员,尤其是那些希望深入了解和应用MCP技术进行智能体开发的工程师。 使用场景及目标:①帮助开发者理解MCP技术的工作原理及其相对于传统技术的优势;②指导开发者完成从零开始的MCP项目开发,包括但不限于环境配置、代码编写、功能测试等;③介绍多种传输方式的选择依据及具体实现方法,为实际项目选型提供参考;④通过自定义MCP客户端的开发,解决当前主流客户端对HTTP流式传输支持不足的问题。 其他说明:本文不仅提供了理论知识,还附带了大量的代码示例和实践指导,确保读者能够在学习过程中动手实践。此外,文中提及的相关课程(如《2025大模型Agent智能体开发实战》)为有兴趣深入学习的读者提供了进一步的学习路径。
2025-07-24 09:18:49 48.54MB
1
java程序员辞职报告7篇.docx
2025-07-21 08:04:20 16KB
1
MATLAB代码:基于粒子群算法的储能优化配置(可加入风光机组) 关键词:储能优化配置 粒子群 储能充放电优化 参考文档:无明显参考文档,仅有几篇文献可以适当参考 仿真平台:MATLAB 平台采用粒子群实现求解 优势:代码注释详实,适合参考学习,非目前烂大街的版本,程序非常精品,请仔细辨识 主要内容:建立了储能的成本模型,包含运行维护成本以及容量配置成本,然后以该成本函数最小为目标函数,经过粒子群算法求解出其最优运行计划,并通过其运行计划最终确定储能容量配置的大小,求解采用的是PSO算法(粒子群算法)。
2025-07-14 18:17:55 283KB 柔性数组
1
引言 为什么要持续集成? 1、减少风险 2、减少假定 3、减少重复过程 4、增强项目的可见性 5、持续集成可以带来两点积极效果: (1)有效决策:持续集成系统为项目构建状态和品质指标提供了及时的信息,有些持续集成系统可以报告功能完成度和缺陷率。 (2)注意到趋势:由于经常集成,我们可以看到一些趋势,如构建成功或失败、总体品质以及其它的项目信息。 一、配置jmeter、Ant、jenkins环境 下载Jmeter工具: Jmeter官网 <![CDATA[ 维度电影项目组收: ${html} 自定 在软件开发过程中,持续集成(Continuous Integration,CI)是一种实践,它强调开发人员频繁地将他们的代码更改合并到主分支,通常每天至少一次。通过这样做,它可以减少集成时的冲突,尽早发现并修复问题,从而提高开发效率和软件质量。本篇文章将指导你如何构建一个基于Ant、Jenkins和JMeter的自动化接口测试框架,实现持续集成。 **1. 安装与配置Ant** Ant是Apache基金会的一个项目,是一个Java构建工具,用于自动化构建、编译、测试和部署Java项目。你需要从Apache官方网站下载Ant的最新版本,并按照指示进行安装。配置环境变量`ANT_HOME`,将`bin`目录添加到`PATH`中,这样你就可以在命令行中使用`ant`命令了。 **2. 安装与配置JMeter** JMeter是一款开源的性能测试工具,主要用于接口和Web应用的压力测试。从JMeter官方网站下载并安装,同样设置环境变量`JMETER_HOME`,并确保`bin`目录在`PATH`中。JMeter支持编写脚本进行接口测试,可以通过CSV Data Set Config导入数据,或者使用模块控制器和逻辑控制器进行复杂场景的模拟。 **3. 安装与配置Jenkins** Jenkins是广泛使用的持续集成服务器,能够自动化各种任务,包括构建、测试和部署。下载Jenkins的War包,部署在Tomcat或其他Servlet容器上。启动Jenkins后,需要配置全局工具(如Ant和JMeter),指定它们的安装路径,以便Jenkins在执行任务时能找到这些工具。 **4. 创建Jenkins Job** 在Jenkins中创建一个新的自由风格的软件项目。配置源码管理,如果项目是Git或SVN,添加相应的URL和凭据。在构建触发器部分,你可以设置定时器,让Jenkins定时检查源码仓库,当有新的提交时自动触发构建。 **5. 编写Ant脚本** 为了自动化接口测试,你需要编写一个Ant脚本,该脚本会调用JMeter进行测试。在脚本中,可以定义目标,例如`clean`、`compile`和`test`。`test`目标会运行JMeter的`.jmx`测试计划文件。确保脚本能正确找到JMeter的二进制路径,并指定测试计划和结果文件的位置。 **6. 配置Jenkins Build步骤** 在Jenkins Job的构建步骤中,选择执行Ant任务,并指定之前创建的Ant脚本。在构建后操作中,可以配置发送邮件通知,当构建成功或失败时,通知团队成员。使用`${html}`变量插入自定义邮件内容,如维度电影项目组的定制消息。 **7. 结果分析与集成** JMeter会生成CSV或HTML格式的结果文件,这些文件可以在Jenkins的构建页面查看。Jenkins有许多插件,如HTML Publisher插件,可以展示测试报告。此外,还可以配置Jenkins与其他工具如SonarQube集成,进行代码质量分析。 **8. 持续集成的益处** 持续集成不仅减少了手动集成的负担,还通过快速反馈机制提高了开发效率。通过Jenkins的构建历史,团队可以随时了解项目的健康状况,发现并解决问题。持续集成有助于保持代码的整洁,减少回归错误,并确保每次代码更改都不会破坏现有功能。 总结,通过上述步骤,你已经掌握了如何构建一个基于Ant、Jenkins和JMeter的自动化接口测试框架。这个框架将帮助你的团队实现持续集成,提升软件开发的效率和质量。记住,持续集成的关键在于频繁集成和自动化测试,确保项目始终保持在可发布状态。
2025-07-13 21:38:07 319KB
1