### AS400程序员培训手册(中级)知识点详解 #### 一、程序代码行的编写 **2.1 最简单的RPGLE程序** RPGLE(RPG IV Enhanced)是一种高级编程语言,专为IBM i系列(原AS/400)设计。最简单的RPGLE程序通常包括基础的程序结构,例如程序头、主程序部分和结束语句。程序头包含了程序的基本信息,如程序名、程序类型等;主程序部分则是实际的业务逻辑所在。 **2.2 举例准备** 为了更好地理解RPGLE程序的编写过程,本章节提供了一些示例程序。这些示例涵盖了基本的编程概念,如变量声明、条件判断、循环控制等。通过这些示例,初学者可以快速掌握RPGLE的基础语法。 **2.3 简单的程序流程** 本节介绍了如何构建一个简单的程序流程。在RPGLE中,程序流程通常由一系列的指令组成,这些指令按照预定的顺序执行。了解基本的流程控制语句(如IF、DO等)对于编写高效的程序至关重要。 **2.4 常见的程序流程** 这里列举了一些常见的程序流程结构,如分支结构(IF-THEN-ELSE)、循环结构(DO-WHILE/DO-UNTIL)等。这些结构是构成复杂应用程序的基础。 **2.5 F行说明** - **2.5.1 内容说明**:F行主要用于定义文件,包括输入文件和输出文件。它指定了文件的名称、文件类型、文件结构等信息。 - **2.5.2 常用例子**:提供了具体的F行示例,帮助读者理解如何正确地定义文件。 - **2.5.3 补充说明**:补充了F行的一些特殊用途,如定义临时文件或特定类型的文件。 **2.6 D行说明** - **2.6.1 内容说明**:D行用于定义变量,包括局部变量和全局变量。通过D行可以指定变量的数据类型、长度等属性。 - **2.6.2 常用例子**:给出了一些D行的实例,展示了如何定义不同类型和长度的变量。 - **2.6.3 补充说明**:进一步解释了D行的高级用法,如如何定义复杂的变量类型。 **2.7 入口参数** 入口参数是指程序在被调用时需要传递的参数。这部分内容详细介绍了如何在RPGLE程序中定义和使用入口参数。 **2.8 C行说明** - **2.8.1 写在前面**:介绍了C行的基本概念及其在程序中的作用。 - **2.8.2 内容说明**:C行用于执行计算或数据转换等操作。详细说明了C行的基本语法和使用场景。 - **2.8.3 ILE操作码分类**:将C行的操作码按照字母顺序进行了分类介绍。 - **2.8.4 ILE操作码**:逐一讲解了各个操作码的功能和使用方法。 #### 二、和程序相关的数据库知识 **3.1 LF(逻辑文件)** - **3.1.1 逻辑文件概念**:逻辑文件是AS/400中用于访问物理文件的一种方式。它为物理文件提供了一个抽象层,使得应用程序可以通过逻辑文件来访问物理文件。 - **3.1.2 逻辑文件对效率的影响**:通过合理的逻辑文件设计可以显著提高数据访问的速度和效率。 **3.2 MEMBER** MEMBER是指数据库文件中的记录集合。这部分内容介绍了如何管理和使用MEMBER。 **3.3 游标** - **3.3.1 游标的概念**:游标是在数据库查询结果集中逐行移动的一种机制。游标允许应用程序一次处理一条记录。 - **3.3.2 不同操作码对应的游标的处理**:详细说明了不同的操作码如何与游标交互。 - **3.3.3 “有且仅有”的游标**:解释了在某些情况下必须使用游标的场景。 - **3.3.4 LOVAL、HIVAL对应的游标操作**:阐述了如何在特定条件下使用游标。 **3.4 事务处理--COMMIT** - **3.4.1 概念描述**:事务是一组操作的集合,它们作为一个整体被提交或回滚。 - **3.4.2 使用方法**:说明了如何在RPGLE程序中使用COMMIT命令来管理事务。 - **3.4.3 注意事项**:列举了一些在使用事务处理时需要注意的事项。 **3.5 关于锁表的问题LCKW** 这部分内容介绍了在RPGLE程序中如何处理锁表问题,特别是LCKW(Lock Workstation)操作码的使用。 #### 三、DEBUG调试以及常见出错信息 **4.1 写在前面** 这部分内容强调了调试的重要性,并简要介绍了调试的基本概念。 **4.2 常规用法** - **4.2.1 程序编译**:概述了程序编译的过程和步骤。 - **4.2.2 执行DEBUG命令**:介绍了如何使用DEBUG命令进入调试模式。 - **4.2.3 运行程序**:解释了如何在调试模式下运行程序。 - **4.2.4 在DEBUG模式中进行调试**:给出了具体的调试技巧和方法。 - **4.2.5 跟踪被当前程序调用的程序**:讲解了如何跟踪子程序的执行情况。 - **4.2.6 一定要退出DEBUG模式**:强调了完成调试后退出调试模式的重要性。 - **4.2.7 补充**:补充了一些额外的调试技巧。 **4.3 跟踪批处理程序** 这部分内容专门针对批处理程序的调试方法进行了介绍。 **4.4 常见的出错信息** - **4.4.1 编译程序时的出错信息**:列举了一些常见的编译错误,并提供了相应的解决方案。 - **4.4.2 运行时的出错信息**:详细说明了运行时可能出现的错误类型及处理方法。 #### 四、CL、CMD **5.1 CL程序** - **5.1.1 基本认识**:CL是Command Language的缩写,是一种用于编写系统命令和脚本的语言。 - **5.1.2 CL程序的常用语法及命令**:介绍了CL语言的基本语法和常用的命令。 - **5.1.3 不常用的语法**:列举了一些不太常用的CL语法。 **5.2 CMD** CMD是指在AS/400系统中执行的各种命令。这部分内容介绍了CMD的基本概念及其使用方法。 #### 五、屏幕文件及使用 这部分内容涉及了如何在RPGLE程序中创建和使用屏幕文件,以便与用户进行交互。 #### 六、实用技巧 **7.1 数组** - **7.1.1 简述**:介绍了数组的基本概念。 - **7.1.2 定义**:说明了如何定义数组。 - **7.1.3 初始化**:解释了如何初始化数组。 - **7.1.4 使用方法**:给出了使用数组的具体方法。 - **7.1.5 补充**:补充了一些关于数组使用的注意事项。 **7.2 结构体** - **7.2.1 简述**:介绍了结构体的基本概念。 - **7.2.2 结构体的定义**:说明了如何定义结构体。 - **7.2.3 初始化**:解释了如何初始化结构体。 - **7.2.4 使用方法**:给出了使用结构体的具体方法。 - **7.2.5 结构体中的数组**:说明了如何在结构体中嵌套数组。 - **7.2.6 定义时,独立变量与结构体变量的区别**:比较了独立变量和结构体变量之间的差异。 - **7.2.7 不带OCCURS关键字的结构体定义**:解释了如何在没有使用OCCURS关键字的情况下定义结构体。 **7.3 按内部序号来读文件** 这部分内容详细介绍了如何使用内部序号来读取文件。 **7.4 常驻内存命令SETOBJACC** - **7.4.1 简述**:介绍了SETOBJACC命令的基本概念。 - **7.4.2 命令说明**:解释了SETOBJACC命令的具体含义。 - **7.4.3 使用说明**:给出了使用SETOBJACC命令的方法。 - **7.4.4 补充说明**:补充了一些关于SETOBJACC命令的注意事项。 **7.5 数据队列的使用** - **7.5.1 数据队列的说明**:介绍了数据队列的基本概念。 - **7.5.2 CRTDTAQ建立数据队列**:说明了如何创建数据队列。 - **7.5.3 DLTDTAQ删除数据队列**:解释了如何删除数据队列。 - **7.5.4 系统API** - **7.5.4.1 QSNDDTAQ发送数据队列**:说明了如何使用QSNDDTAQ API发送数据到队列。 - **7.5.4.2 QRCVDTAQ接收数据队列**:解释了如何使用QRCVDTAQ API从队列中接收数据。 - **7.5.4.3 QCLRDTAQ清除数据队列**:说明了如何使用QCLRDTAQ API清空队列。 - **7.5.4.4 QMHQRDQD检索数据队列**:解释了如何使用QMHQRDQD API检索队列中的数据。 **7.6 使用系统API的入手方法** - **7.6.1 调用说明**:介绍了如何调用系统API。 - **7.6.2 关于USRSPACE**:解释了USRSPACE在API调用中的作用。 - **7.6.3 一些可能常用的API**:列举了一些常用的系统API。 #### 七、其它 **8.1 报表打印** 这部分内容涉及了如何在RPGLE程序中生成和打印报表。 **8.2 SQLRPGLE** 这部分内容介绍了如何在RPGLE程序中使用SQL语句。 **8.3 SAVF,备份与恢复** 这部分内容介绍了如何使用SAVF命令进行备份和恢复操作。 **8.4 菜单--MENU** 这部分内容介绍了如何在AS/400系统中创建和使用菜单。 **8.5 实用命令** 这部分内容列举了一些实用的AS/400命令,以供参考。 **8.6 关于代码风格的几点想法** 这部分内容分享了一些关于编写高质量RPGLE代码的建议。
2024-07-31 10:43:13 590KB AS400
1
在本文中,我们将深入探讨如何使用Qt框架与海康威视工业相机进行集成,实现图像采集、在线转换为Halcon变量以及实时显示的功能。这个解决方案特别强调了独立封装、多相机支持以及对黑白和彩色相机的兼容性。 Qt是一个跨平台的应用程序开发框架,广泛用于创建用户界面和其他桌面、移动或嵌入式系统的软件。它提供了丰富的库和工具,使得开发者能够方便地构建图形化界面,并与其他系统组件如硬件设备进行交互。 海康威视是一家全球领先的视频监控产品供应商,其工业相机广泛应用于自动化、检测等领域。这些相机通常提供高速、高分辨率的图像采集能力,适合于精确的机器视觉应用。 将Qt与海康威视工业相机结合,可以实现以下关键功能: 1. **图像采集**:通过海康威视的SDK(Software Development Kit),开发者可以编写代码来控制相机,设置参数如曝光时间、增益等,以获取所需质量的图像。Qt可以作为用户界面,显示实时采集的图像预览。 2. **在线转换为Halcon变量**:Halcon是德国MVTec公司的一款强大的机器视觉软件,提供了丰富的图像处理算法。在Qt中,可以调用Halcon的API将接收到的图像数据转换为Halcon可识别的变量,以便执行如模板匹配、形状识别等复杂的图像分析任务。 3. **支持多相机**:设计一个灵活的架构,允许同时连接和管理多个海康威视相机。这可能涉及到线程管理和数据同步,确保每个相机的图像数据能正确处理并独立显示。 4. **黑白和彩色相机的支持**:不同的工业应用可能需要不同类型的相机,因此软件需要能够适应黑白和彩色相机。这涉及到处理不同格式的图像数据,并可能调整处理算法以适应不同的颜色空间。 5. **独立封装**:为了提高代码的复用性和维护性,整个流程应该被封装成独立的模块。例如,可以创建一个“相机管理”类,负责与相机的通信和图像处理;一个“Halcon转换器”类,用于将图像数据转换为Halcon变量;还有一个“显示”类,用于在Qt界面中展示图像。 6. **文档与示例**:提供的"联合海康威视工业相机采集在线转变量并显示.html"可能是详细的步骤说明或者代码示例,帮助开发者理解如何实现这一功能。"1.jpg"、"2.jpg"、"3.jpg"可能是截图或者流程图,辅助解释各个步骤。而"联合海康威视工业相机采集在线转变.txt"可能包含了更多技术细节或代码片段。 这个项目展示了如何利用Qt的图形界面和海康威视的硬件能力,结合Halcon的强大图像处理功能,构建一个高效、灵活的工业相机应用。这种集成方案对于自动化生产线、质量检测等应用场景具有重要意义。
2024-07-30 11:01:19 3.86MB
1
ENSP(Enterprise Network Simulation Platform)是一款由华为公司开发的强大网络模拟软件,对于网络工程师和学习者来说,它是一个必备的工具。通过ENSP,用户可以在虚拟环境中构建、配置和测试复杂的网络拓扑,无需实际购买和连接硬件设备,极大地降低了学习和实验的成本。 在开始ENSP的安装之前,确保你的系统满足以下基本要求: 1. 操作系统:ENSP支持Windows和Linux操作系统,具体版本可能因不同发布版而异,通常要求是64位系统。 2. 内存:为了流畅运行,至少需要4GB内存,推荐8GB或更多。 3. 硬盘空间:ENSP安装文件本身较大,需要足够的硬盘空间,此外还需要额外的空间来保存模拟的网络环境和日志文件。 4. 处理器:双核处理器是基础,四核或更高性能的处理器能提供更好的性能。 5. 虚拟化支持:ENSP依赖于虚拟化技术,如Intel VT-x或AMD-V,因此确保你的CPU支持这些特性并已在BIOS中启用。 安装步骤通常如下: 1. 下载ENSP安装包:首先从华为官网或者授权渠道获取ENSP的稳定版安装包。 2. 解压文件:将下载的压缩包解压到一个适当的目录,通常选择一个没有空格和特殊字符的路径以避免安装过程中的问题。 3. 运行安装程序:找到解压后的安装文件,双击运行。 4. 接受许可协议:阅读并接受软件的许可协议。 5. 选择安装路径:根据个人偏好选择安装的位置,建议避免安装在系统盘。 6. 等待安装完成:安装过程可能需要几分钟到十几分钟,取决于你的系统性能。 7. 启动ENSP:安装完成后,可以通过桌面快捷方式或安装目录下的可执行文件启动ENSP。 ENSP的主要功能包括: 1. 模拟网络设备:你可以模拟华为的各种路由器、交换机和其他网络设备,如AR系列路由器、S系列交换机等。 2. 创建拓扑:在图形化的界面中拖拽设备,连线,构建所需的网络拓扑结构。 3. 配置设备:通过命令行接口(CLI)或图形化用户界面(GUI)对设备进行配置,模拟真实网络环境。 4. 实验与验证:在模拟环境中进行网络配置、故障排查、性能测试等实验。 5. 脚本自动化:支持使用Python等脚本语言自动化执行任务,提高效率。 6. 版本兼容性:ENSP通常与华为的网络设备固件版本保持同步,确保模拟的准确性。 使用ENSP进行学习时,可以从以下几个方面入手: 1. 学习网络基础知识:如TCP/IP协议栈、路由原理、交换机工作模式等。 2. 熟悉华为设备命令行:掌握基本的配置和调试命令。 3. 实战演练:模拟实际网络场景,如VLAN划分、路由协议配置、QoS策略设置等。 4. 故障排除:通过模拟故障,学习如何定位和解决问题。 ENSP是一个强大的工具,它能够帮助网络工程师和学习者提升技能,理解和掌握网络原理,无论是在学习还是工作中都是不可或缺的助手。
2024-07-30 09:54:02 703.97MB 网络 网络 ENSP
1
零基础入门学习Python(第2版)-微课视频版
2024-07-28 23:58:17 10.87MB python
1
Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。
2024-07-28 17:19:42 4KB 机器学习 数据集
1
标题中的“onnx转ncnn工具,ui操作”指出,这是一个用于将ONNX模型转换为ncnn可执行格式的工具,并且提供了用户界面以便于操作。ONNX(Open Neural Network Exchange)是一种开放标准,用于表示多种机器学习模型,而ncnn是腾讯优图团队开源的高性能神经网络前向计算框架,特别适合移动端的推理。 描述中提到的具体参考链接指向了CSDN的一个博客编辑器页面,这通常会包含关于如何使用这个工具的教程或者详细步骤。尽管链接没有给出具体内容,但可以推测该页面会涵盖如何安装、配置和运行这个转换工具,以及如何通过UI来交互操作。 标签“ncnn”、“onnx”和“工具”进一步确认了讨论的主题。ncnn是目标平台,onnx是源模型格式,而“工具”表明这是一个实用程序,帮助开发者在两者之间进行转换。 压缩包内的文件名列表显示了一些关键的库和可执行文件,这些都是工具运行所必需的: 1. `ONNXToNCNN解析.exe.config`:这是应用程序的配置文件,可能包含关于程序设置、依赖项和环境变量的信息。 2. `onnxruntime.dll`:这是微软的ONNX运行时库,用于加载和执行ONNX模型。 3. `Newtonsoft.Json.dll`:这是一个JSON序列化和反序列化的库,可能用于读取或写入模型相关的配置文件。 4. `Google.Protobuf.dll`:谷歌的Protocol Buffers库,用于数据序列化,可能在ONNX模型的内部通信中发挥作用。 5. `Microsoft.ML.OnnxRuntime.dll`:这是ONNX运行时的扩展,可能包含了与微软机器学习框架相关的功能。 6. `System.Memory.dll`、`System.Numerics.Vectors.dll`、`System.Buffers.dll`和`System.Runtime.CompilerServices.Unsafe.dll`:这些是.NET框架的一部分,提供内存管理、向量运算、缓冲区处理和不安全代码支持,对高性能计算至关重要。 7. `ONNXToNCNN解析.exe`:这是主要的可执行文件,包含了转换工具的主体逻辑,用户通过这个文件启动和使用工具。 综合这些信息,我们可以理解这个工具的工作流程可能是:用户通过UI导入一个ONNX模型;然后,工具使用`onnxruntime.dll`和`Microsoft.ML.OnnxRuntime.dll`来解析和验证模型;接着,借助`Newtonsoft.Json.dll`和`Google.Protobuf.dll`处理模型的结构信息;利用内部算法将模型转换为ncnn兼容的格式,并可能保存为ncnn特有的文件结构。用户可能需要了解ONNX模型的基本知识,以及ncnn的模型部署要求,以便正确地使用这个工具。
2024-07-28 15:13:39 4.02MB ncnn onnx
1
对osi七层模型的功能进行了描述,并细致讲述了每一层的功能和需要注意的知识点,介绍ARP、TCP、UDP、DHCP等协议,并对ip地址划分、静态路由配置、ACL配置进行了讲述,非常适合初学网络的人员,通过学习可以对网络从整体层面有一个很好的认知,当然对于正在进行网络维护的人员也会有很大的帮助。 网络入门级的基础知识涵盖了许多关键概念,包括OSI七层模型、网络协议、IP地址划分、静态路由配置和ACL配置。这些知识对于理解和操作网络至关重要,无论是初学者还是经验丰富的网络管理员都能从中受益。 OSI七层模型是国际标准化组织(ISO)提出的通信系统互联标准,它将网络通信过程分解为七个层次,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。每一层都有其特定的功能,如物理层负责比特流传输,数据链路层则处理帧的封装与解封装,网络层则负责寻址和路由选择,传输层确保数据的可靠传输,会话层建立和管理会话,表示层处理数据格式和加密,而应用层为用户提供直接的服务接口。 在物理层,我们关注的是物理介质,如同轴电缆、双绞线、光纤和无线技术。例如,双绞线(网线)有568B线序标准,而光纤因其传输距离远、速度快、损耗低和抗干扰能力强等特点,被广泛应用于长距离通信。 数据链路层是网络通信的重要一环,负责将数据封装成帧,同时进行链路控制和MAC地址寻址。MAC地址是48位的二进制数,用于标识网络设备,通常以16进制形式表示。 网络层的主要任务是编址和路由。IP地址由网络地址和主机地址两部分构成,IP地址的划分需要借助子网掩码。子网划分是根据网络需求将大的IP地址空间划分为多个小的子网,例如在给定的C类IP地址192.168.10.0下,通过借用主机位可以创建4个子网,每个子网有62个可用IP地址。 ARP(Address Resolution Protocol)协议在网络层用于将IP地址解析为对应的MAC地址,以实现数据包在局域网内的正确传输。TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是传输层的两种主要协议,TCP提供可靠的、面向连接的通信,而UDP则是一种无连接、不可靠的数据传输方式。 DHCP(Dynamic Host Configuration Protocol)协议则是网络基础中的另一重要组件,它自动分配IP地址和其他网络配置信息给网络设备,简化了网络管理。 静态路由配置涉及网络管理员手动设定路由规则,以指导数据包从源到目的地的路径。而ACL(Access Control List)配置则是用来过滤网络流量,允许或拒绝某些特定的数据包通过网络,起到网络安全和流量管理的作用。 理解这些基础知识,可以帮助我们构建网络通信的整体框架,理解网络数据传输的过程,以及如何管理和优化网络资源。无论是对网络初学者还是专业网络维护者,这些知识都是必备的。通过学习和掌握这些概念,我们可以更好地诊断网络问题,设计和实施有效的网络解决方案。
2024-07-27 10:16:48 11.85MB 网络 网络 网络协议 网络基础
1
matplotlib入门教程
2024-07-24 10:43:09 320KB matplotlib
1
给深度学习入门者的python教程,包括常用的numpy和matplotlib的入门知识,简单易懂。
2024-07-24 10:00:00 1.63MB python 深度学习
1
• 一、现实中的组件与接口; • 二、把现实中的思想融入到软件中; • 三、C++程序中的组件与接口; • 四、COM组件与COM接口; • 五、QueryInterface函数,HRESULT类型,IID类型, 数据类型转换。
2024-07-23 15:13:43 5.15MB 入门教程 pdf
1