Nanotic NanoLib C++ 编程
产品信息
规格
- 产品名称: 纳米库
- 编程 语言:C++
- 产品版本: 1.3.0
- 用户手册版本: 1.4.2
NanoLib 库专为 Nanotec 控制器的控制软件编程而设计。它提供用户界面、核心功能和通信库,以促进控制应用程序的开发。
产品使用说明
- 开始之前:
- 确保您的系统满足手册中指定的硬件要求。本产品的目标受众包括希望为 Nanotec 控制器创建控制软件的开发人员。
- 入门:
- 要开始使用 NanoLib,请按照以下步骤操作:
- 首先将 NanoLib 导入到您的项目中。
- 根据需要配置您的项目设置。
- 构建您的项目以整合 NanoLib 功能。
- 创建项目:
- 您可以为 Windows 和 Linux 环境创建项目。请遵循每个平台手册中提供的特定说明。
- 类/函数参考:
- 请参阅用户手册,了解 NanoLib 中用于编程控制软件的类和函数的详细指南。
常见问题解答
- 问:NanoLib 的目的是什么?
- A: NanoLib 是一个用于对 Nanotec 控制器进行编程的控制软件库,提供必要的功能和通信能力。
- 问:如何开始使用 NanoLib?
- A: 首先将 NanoLib 导入您的项目,配置项目设置,然后构建您的项目以利用 NanoLib 功能。
“`
NanoLib 用户手册
C++
适用于产品版本 1.3.0
用户手册版本:1.4.2
文件目的和惯例
本文档介绍了 NanoLib 库的设置和使用,并包含用于为 Nanotec 控制器编写自己的控制软件的所有类和函数的参考。我们使用以下字体:
带下划线的文本标记交叉引用或超链接。
Example 1:有关 NanoLibAccessor 的具体说明,请参阅设置。例如ample 2:安装 Ixxat 驱动程序并连接 CAN-to-USB 适配器。斜体文本表示:这是一个命名对象、菜单路径/项、选项卡/ file 名称或者(如有必要)外语表达。
Examp1:选择 File > 新建 > 空白文档。打开工具选项卡并选择注释。例如ample 2: 本文件将用户 (= Nutzer; usuario; utente; utilisateur; utente 等) 分为:
– 第三方用户(= Drittnutzer;tercero usuario;terceiro utente;tiers utilisateur;terzo utente 等)。– 最终用户(= Endnutzer;usuario final;utente final;utilisateur final;utente finale 等)。
Courier 标记代码块或编程命令。例如amp例 1:通过 Bash,调用 sudo make install 复制共享对象;然后调用 ldconfig。例如ample 2:使用以下 NanoLibAccessor 函数更改 NanoLib 中的日志记录级别:
// ***** C++ 变体 *****
void setLoggingLevel(LogLevel 级别);
粗体文本强调至关重要的个别单词。或者,括号内的感叹号强调至关重要(!)的重要性。
Example 1:保护您自己、他人和您的设备。请遵循适用于所有 Nanotec 产品的一般安全注意事项。
Example 2:为了保护您自己,还请遵守适用于此特定产品的特定安全注意事项。动词“同时点击”表示通过鼠标辅助键点击以打开上下文菜单等。
Examp1:同时点击 file,选择重命名,然后重命名 file. 前任ample 2:要检查属性,请同时单击 file 并选择属性。
版本:doc 1.4.2 / NanoLib 1.3.0
4
开始之前
在开始使用 NanoLib 之前,请准备好您的电脑并了解预期用途和库的限制。
2.1 系统和硬件要求
注意 32 位操作或停产系统导致故障!使用并始终维护 64 位系统。遵守 OEM 停产和说明。
NanoLib 1.3.0 支持所有带有 CANopen、Modbus RTU(虚拟 com 端口上还有 USB)、Modbus TCP、EtherCat 和 Profinet 的 Nanotec 产品。对于较旧的 NanoLibs:请参阅版本说明中的更改日志。仅由您自行承担风险:旧系统使用。注意:如果您在使用基于 FTDI 的 USB 适配器时遇到问题,请按照有效的 OEM 说明将延迟设置为尽可能低。
要求(64位系统必备)
Windows 10 或 11,带有 Visual Studio 2019 版本 16.8 或更高版本以及 Windows SDK 10.0.20348.0(版本 2104)或更高版本
C++ redistributables 2017 或更高版本 CANopen:Ixxat VCI 或 PCAN 基本驱动程序(可选) EtherCat 模块 / Profinet DCP:Npcap 或 WinPcap RESTful 模块:Npcap、WinPcap 或管理员权限
与以太网引导加载程序通信
Linux(带有 Ubuntu 20.04 LTS 至 24)(所有 x64 和 arm64)
内核头文件和 libpopt-dev 包 Profinet DCP:CAP_NET_ADMIN 和 CAP_NET_RAW 能力
连接 CANopen:Ixxat ECI 驱动程序或 Peak PCAN-USB 适配器 EtherCat:CAP_NET_ADMIN、CAP_NET_RAW 和
CAP_SYS_NICE 能力 RESTful:CAP_NET_ADMIN 能够与 Eth-
ernet 引导加载程序(也推荐:CAP_NET_RAW)
语言、现场总线适配器、电缆
C++ GCC 7 或更高版本 (Linux)
EtherCAT:以太网电缆 VCP/USB 集线器:现统一 USB USB 大容量存储:USB 电缆 REST:以太网电缆 CANopen:Ixxat USB-to-CAN V2;Na-
notec ZK-USB-CAN-1,Peak PCANUSB 适配器不支持 arm64 上 Ubuntu 的 Ixxat
Modbus RTU:Nanotec ZK-USB-RS485-1 或同等适配器;虚拟通信端口 (VCP) 上的 USB 电缆
Modbus TCP:以太网电缆,符合产品数据表
2.2 预期用途和受众
NanoLib 是一个程序库和软件组件,用于操作和与 Nanotec 控制器进行通信,广泛应用于工业领域,仅供具有适当技能的程序员使用。
由于硬件(PC)和操作系统缺乏实时性,NanoLib 不适用于需要同步多轴运动或通常对时间敏感的应用。
在任何情况下,您都不能将 NanoLib 作为安全组件集成到产品或系统中。在交付给最终用户时,您必须为每个带有 Nanotec 制造组件的产品添加相应的警告通知和安全使用和安全操作说明。您必须将所有 Nanotec 发出的警告通知直接传递给最终用户。
2.3 交付范围和保修
NanoLib 是我们下载的一个 *.zip 文件夹 webEMEA / APAC 或 AMERICA 站点。在安装之前请妥善保存并解压下载文件。NanoLib 软件包包含:
版本:doc 1.4.2 / NanoLib 1.3.0
5
2开始之前
接口头文件作为源代码 (API)
核心函数以二进制格式的库形式提供:nano-
促进通信的库:nanolibm_ lib.dll
[yourfieldbus].dll 等。Examp项目:Example.sln (Visual Studio
项目)和前ample.cpp (主 file)
对于保修范围,请遵守 a) 针对 EMEA/APAC 或 AMERICA 的条款和条件以及 b) 所有许可条款。注意:Nanotec 对第三方设备的故障或不当质量、处理、安装、操作、使用和维护不承担任何责任!为了确保安全,请始终遵循有效的 OEM 说明。
版本:doc 1.4.2 / NanoLib 1.3.0
6
NanoLib 架构
NanoLib 的模块化软件结构让您能够围绕严格预构建的核心自由安排可定制的电机控制器/现场总线功能。NanoLib 包含以下模块:
用户界面 (API)
NanoLib 核心
接口和辅助类 库
通信库 现场总线专用库
访问你的控制器实现的API功能做NanoLib之间的接口
OD(对象词典)
与公交库互动。
核心和总线硬件。
基于 NanoLib 核心功能
民族。
3.1 用户界面
用户界面由标题界面组成 file您可以使用它来访问控制器参数。类/函数参考中描述的用户界面类允许您:
连接硬件(现场总线适配器)和控制器设备。访问设备的 OD,读取/写入控制器参数。
3.2 NanoLib 核心
NanoLib 核心带有导入库 nanolib.lib。它实现用户界面功能并负责:
加载和管理通信库。在 NanoLibAccessor 中提供用户界面功能。此通信入口点指定
定义一组可以在 NanoLib 核心和通信库上执行的操作。
3.3 通信库
除了 nanotec.services.nanolib.dll(对您的可选 Plug & Drive Studio 有用)之外,NanoLib 还提供以下通信库:
nanolibm_canopen.dll nanolibm_modbus.dll
nanolibm_ethercat.dll nanolibm_restful-api.dll
nanolibm_usbmmsc.dll nanolibm_profinet.dll
所有库都在核心和控制器之间建立了一个硬件抽象层。核心在启动时从指定的项目文件夹加载它们,并使用它们通过相应的协议与控制器建立通信。
版本:doc 1.4.2 / NanoLib 1.3.0
7
入门
阅读如何为您的操作系统设置 NanoLib 以及如何根据需要连接硬件。
4.1 准备系统
在安装适配器驱动程序之前,请先准备好您的 PC 和操作系统。要准备 PC 和 Windows 操作系统,请安装带有 C++ 扩展的 MS Visual Studio。要通过 Linux Bash 安装 make 和 gcc,请调用 sudo apt install build-essentials。然后为使用 NanoLib 的应用程序启用 CAP_NET_ADMIN、CAP_NET_RAW 和 CAP_SYS_NICE 功能:1. 调用 sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip'
名称>。2. 然后,安装适配器驱动程序。
4.2 安装适用于 Windows 的 Ixxat 适配器驱动程序
只有在正确安装驱动程序后,您才可以使用 Ixxat 的 USB-to-CAN V2 适配器。阅读 USB 驱动器的产品手册,了解是否/如何激活虚拟通信端口 (VCP)。1. 从下载并安装适用于 Windows 的 Ixxat VCI 4 驱动程序 www.ixxat.com. 2. 通过 USB 将 Ixxat 的 USB-to-CAN V2 紧凑型适配器连接到 PC。 3. 通过设备管理器:检查驱动程序和适配器是否均已正确安装/识别。
4.3 安装适用于 Windows 的 Peak 适配器驱动程序
只有在正确安装驱动程序后,您才可以使用 Peak 的 PCAN-USB 适配器。阅读 USB 驱动器的产品手册,了解是否/如何激活虚拟通信端口 (VCP)。1. 下载并安装 Windows 设备驱动程序设置(= 安装包,包括设备驱动程序、工具和
API)来自 http://www.peak-system.com. 2. 通过 USB 将 Peak 的 PCAN-USB 适配器连接到 PC。 3. 通过设备管理器:检查驱动程序和适配器是否均已正确安装/识别。
4.4 安装适用于 Linux 的 Ixxat 适配器驱动程序
只有在正确安装驱动程序后,您才可以使用 Ixxat 的 USB-to-CAN V2 适配器。注意:其他受支持的适配器需要您通过 sudo chmod +777/dev/ttyACM* (* 设备编号) 获得权限。阅读 USB 驱动器的产品手册,了解是否/如何激活虚拟通信端口 (VCP)。1. 安装 ECI 驱动程序和演示应用程序所需的软件:
sudo apt-get 更新 apt-get 安装 libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. 从 www.ixxat.com 下载 ECI-for-Linux 驱动程序。通过以下方式解压:
解压缩 eci_driver_linux_amd64.zip
3.通过以下方式安装驱动程序:
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. 通过编译并启动演示应用程序来检查驱动程序是否安装成功:
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo
版本:doc 1.4.2 / NanoLib 1.3.0
8
4 入门
4.5 安装 Linux 版 Peak 适配器驱动程序
只有在正确安装驱动程序后,您才可以使用 Peak 的 PCAN-USB 适配器。注意:其他受支持的适配器需要您的权限,方法是使用 sudo chmod +777/dev/ttyACM* (* 设备编号)。阅读 USB 驱动器的产品手册,了解是否/如何激活虚拟通信端口 (VCP)。1. 检查您的 Linux 是否有内核头文件:ls /usr/src/linux-headers-`uname -r`。如果没有,请安装
它们:sudo apt-get install linux-headers-`uname -r` 2. 现在,安装 libpopt-dev 包:sudo apt-get install libpopt-dev 3. 从 www.peak-system.com 下载所需的驱动程序包 (peak-linux-driver-xxx.tar.gz)。 4. 要解压,请使用:tar xzf peak-linux-driver-xxx.tar.gz 5. 在解压的文件夹中:编译并安装驱动程序、PCAN 基础库等:make all
sudo make install 6. 为了检查功能,请插入 PCAN-USB 适配器。
a)检查内核模块:
lsmod | grep pcan b) …和共享库:
ls -l /usr/lib/libpcan*
注意:如果出现 USB3 问题,请使用 USB2 端口。
4.6 连接硬件
为了能够运行 NanoLib 项目,请使用适配器将兼容的 Nanotec 控制器连接到 PC。1. 使用合适的电缆将适配器连接到控制器。2. 根据适配器数据表将适配器连接到 PC。3. 使用合适的电源打开控制器。4. 如果需要,请按照产品手册中的说明更改 Nanotec 控制器的通信设置。
4.7 加载 NanoLib
对于快速简便的基础知识的首次入门,您可以(但不能)使用我们的 example project. 1. 根据您所在的地区:从我们的 webEMEA / APAC 或 AMERICA 站点。2. 解压软件包的 files / 文件夹并选择一个选项:有关快速简便的基础知识:请参阅启动 example 项目。对于 Windows 中的高级自定义:请参阅创建您自己的 Windows 项目。对于 Linux 中的高级自定义:请参阅创建您自己的 Linux 项目。
版本:doc 1.4.2 / NanoLib 1.3.0
9
开始前任amp项目
在 NanoLib 正确加载后,examp该项目向您展示了如何使用 NanoLib 和 Nanotec 控制器。注意:对于每个步骤,提供的示例中的注释amp代码解释了所使用的函数。example 项目包括:`*_functions_examp' files,其中包含 NanoLib 接口函数的实现`*_callback_examp' files,其中包含各种回调(扫描、数据和
日志)“menu_*.*” file,其中包含菜单逻辑和 Ex 代码amp乐* file,这是主程序,创建菜单并初始化所有使用的参数Sampler_examp乐* file,其中包含 examps 的实现ampler 用法。您可以找到更多示例amp请参阅 nanotec.com 知识库中的文件,其中包含一些用于各种操作模式的运动命令。所有这些都可以在 Windows 或 Linux 中使用。
在 Windows 中使用 Visual Studio 1. 打开 Examp文件名 file. 2. 打开example.cpp. 3. 编译并运行examp代码。
在 Linux 中通过 Bash 1. 解压源代码 file,导航到包含解压内容的文件夹。主 file 对于前任amp是
example.cpp. 2. 在 bash 中调用:
a. “sudo make install” 复制共享对象并调用 ldconfig。b. “make all” 构建测试可执行文件。3. bin 文件夹包含一个可执行文件 example file. 通过 bash:转到输出文件夹并输入 ./example。如果没有出现错误,则您的共享对象现已正确安装,并且您的库已准备好使用。如果错误显示为 ./example:加载共享库时出错:libnanolib.so:无法打开共享对象 file:没有这样的 file 或目录,则共享对象的安装失败。在这种情况下,请按照以下步骤操作。4. 在 /usr/local/lib 中创建一个新文件夹(需要管理员权限)。进入 bash,输入:
sudo mkdir /usr/local/lib/nanotec
5. 从 zip 中复制所有共享对象 file的 lib 文件夹:
安装./lib/*.so /usr/local/lib/nanotec/
6. 使用以下命令检查目标文件夹的内容:
ls -al /usr/local/lib/nanotec/
它应该列出共享对象 file从 lib 文件夹中。7. 在此文件夹上运行 ldconfig:
sudo ldconfig /usr/local/lib/nanotec/
前任ample 是作为 CLI 应用程序实现的,并提供菜单界面。菜单项基于上下文,将根据上下文状态启用或禁用。它们为您提供了选择和执行各种库函数的可能性,这些库函数遵循处理控制器的典型工作流程:1. 检查 PC 上连接的硬件(适配器)并列出它们。2. 建立与适配器的连接。3. 扫描总线以查找连接的控制器设备。4. 连接到设备。
版本:doc 1.4.2 / NanoLib 1.3.0
10
5 开始前amp项目
5. 测试一个或多个库函数:从/向控制器的对象字典读取/写入、更新固件、上传并运行 NanoJ 程序、启动电机并进行调整、配置并使用日志记录amp勒。
6. 关闭连接,首先关闭设备,然后关闭适配器。
版本:doc 1.4.2 / NanoLib 1.3.0
11
创建自己的 Windows 项目
创建、编译并运行您自己的 Windows 项目以使用 NanoLib。
6.1 导入 NanoLib
导入 NanoLib 标头 file通过 MS Visual Studio 和库。
1. 打开 Visual Studio。2. 通过创建新项目 > 控制台应用程序 C++ > 下一步:选择项目类型。3. 命名您的项目(此处为:NanolibTest)以在解决方案资源管理器中创建项目文件夹。4. 选择完成。5. 打开窗口 file explorer 并导航到新创建的项目文件夹。6. 创建两个新文件夹,inc 和 lib。7. 打开 NanoLib 包文件夹。8. 从那里:复制标题 file将包含文件夹中的 s 复制到项目文件夹 inc 以及所有 .lib 和 .dll 中
file到你的新项目文件夹 lib。9. 检查你的项目文件夹是否结构合理,例如amp乐:
应有结构的 ect 文件夹:
. NanolibTest inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result_od_entry.hpp lib nanolibm_canopen.dll nanolib.dll … nanolib.lib NanolibTest.cpp NanolibTest.vcxproj NanolibTest.vcxproj.filters NanolibTest.vcxproj.user NanolibTest.sln
6.2 配置你的项目
使用 MS Visual Studio 中的解决方案资源管理器设置 NanoLib 项目。注意:为了正确运行 NanoLib,请在 Visual C++ 项目设置中选择发布(而不是调试!)配置;然后使用 C++ 可再发行组件的 VC 运行时构建和链接项目 [2022]。
1. 在解决方案资源管理器中:转到您的项目文件夹(此处为:NanolibTest)。 2. 双击该文件夹以打开上下文菜单。 3. 选择属性。 4. 激活所有配置和所有平台。 5. 选择 C/C++ 并转到附加包含目录。 6. 插入:$(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. 选择链接器并转到附加库目录。 8. 插入:$(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. 扩展链接器并选择输入。 10. 转到附加依赖项并插入:nanolib.lib;%(AdditionalDependencies) 11. 通过确定进行确认。
版本:doc 1.4.2 / NanoLib 1.3.0
12
6 创建你自己的 Windows 项目
12.转到配置>C++>语言>语言标准>ISO C++17 标准并将语言标准设置为 C++17 (/std:c++17)。
6.3 构建你的项目
在 MS Visual Studio 中构建您的 NanoLib 项目。1. 打开主 *.cpp file (此处:nanolib_examp如果需要,可以创建一个编译解决方案(.le.cpp)并编辑代码。2. 选择 Build > Configuration Manager。3. 将 Active solution platform 更改为 x64。4. 通过 Close 确认。5. 选择 Build > Build solution。6. 没有错误?检查您的编译输出是否正确报告:
1>—— 清理已启动:项目:NanolibTest,配置:Debug x64 —–========== 清理:1 成功,0 失败,0 跳过 ==========
版本:doc 1.4.2 / NanoLib 1.3.0
13
7 创建你自己的 Linux 项目
7 创建你自己的 Linux 项目
创建、编译并运行您自己的 Linux 项目以使用 NanoLib。1. 在解压的 NanoLib 安装套件中:打开/nanotec_nanolib。2. 查找 tar.gz 中的所有共享对象 file. 3. 选择一个选项:使用 Make 安装每个库file 或手工操作。
7.1 使用 Make 安装共享对象file
使用 Makefile 使用 Linux Bash 自动安装所有默认 *.so file1. 通过 Bash:转到包含 make 的文件夹file. 2. 通过以下方式复制共享对象:
sudo make install 3. 通过以下方式确认:
ldconfig
7.2 手动安装共享对象
使用 Bash 安装所有 *.so file手动安装 NanoLib。1. 通过 Bash:在 /usr/local/lib 中创建一个新文件夹。2. 需要管理员权限!输入:
sudo mkdir /usr/local/lib/nanotec 3. 切换到解压后的安装包文件夹。 4. 通过以下方式从 lib 文件夹复制所有共享对象:
install ./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/ 5. 通过以下方式检查目标文件夹的内容:
ls -al /usr/local/lib/nanotec/ 6. 检查是否列出了 lib 文件夹中的所有共享对象。 7. 通过以下方式在此文件夹上运行 ldconfig:
sudo ldconfig /usr/local/lib/nanotec/
7.3 创建项目
安装共享对象后:为您的 Linux NanoLib 创建一个新项目。1. 通过 Bash:通过以下方式创建一个新项目文件夹(此处为:NanoLibTest):
mkdir NanoLibTest cd NanoLibTest
2. 复制标题 files 到包含文件夹(此处:inc)通过:mkdir inc cp / FILE 是> /nanotec_nanolib/inc/*.hpp inc
3. 创建主 file (NanoLibTest.cpp)通过:#include“accessor_factory.hpp”#include
版本:doc 1.4.2 / NanoLib 1.3.0
14
7 创建你自己的 Linux 项目
int main(){ nlc::NanoLibAccessor *accessor = getNanoLibAccessor();
nlc::ResultBusHwIds 结果 = 访问器->listAvailableBusHardware();
如果 (result.hasError()) { std::cout << result.getError() << std::endl; }
else{ std::cout << “成功” << std::endl; }
删除访问器;返回 0;}
4. 检查项目文件夹的结构是否正确:
. 纳米Lib测试
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 编译并测试你的项目
让您的 Linux NanoLib 可以通过 Bash 使用。
1.通过 Bash:编译主 file 通过:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. 通过以下方式将可执行文件链接在一起:
g++ -Wall -Wextra -pedantic -I./inc -o 测试 NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. 通过以下方式运行测试程序:
。/测试
4.检查你的 Bash 是否正确报告:
成功
版本:doc 1.4.2 / NanoLib 1.3.0
15
8 类/函数参考
8 类/函数参考
此处列出了 NanoLib 的用户界面类及其成员函数。函数的典型描述包括简短介绍、函数定义和参数/返回列表:
ExampleFunction () 简要告诉您该函数的作用。
虚拟 void nlc::NanoLibAccessor::ExampleFunction (Param_a const & param_a,Param_b const & param_B)
参数 param_a param_b
返回 ResultVoid
如果需要,请添加评论。 如果需要,请添加评论。
8.1 NanoLib访问器
用作 NanoLib 入口点的接口类。典型的工作流程如下:
1. 首先使用 NanoLibAccessor.listAvailableBusHardware () 扫描硬件。 2. 使用 BusHardwareOptions () 设置通信设置。 3. 使用 NanoLibAccessor.openBusHardwareWithProtocol () 打开硬件连接。 4. 使用 NanoLibAccessor.scanDevices () 扫描总线上连接的设备。 5. 使用 NanoLibAccessor.addDevice () 添加设备。 6. 使用 NanoLibAccessor.connectDevice () 连接到设备。 7. 完成操作后,使用 NanoLibAccessor.disconnectDevice () 断开设备连接。 8. 使用 NanoLibAccessor.removeDevice () 移除设备。 9. 使用 NanoLibAccessor.closeBusHardware () 关闭硬件连接。
NanoLibAccessor 具有以下公共成员函数:
listAvailableBusHardware () 使用此函数列出可用的现场总线硬件。
虚拟 ResultBusHwIds nlc::NanoLibAccessor::listAvailableBusHardware ()
返回 ResultBusHwIds
提供现场总线 ID 阵列。
openBusHardwareWithProtocol () 使用此函数连接总线硬件。
虚拟 ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId,BusHardwareOptions const & busHwOpt)
参数 busHwId busHwOpt
返回 ResultVoid
指定要打开的现场总线。指定现场总线打开选项。确认 void 函数已运行。
isBusHardwareOpen () 使用此函数检查您的现场总线硬件连接是否打开。
虚拟 ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (const BusHardwareId & busHwId,const BusHardwareOptions & busHwOpt)
版本:doc 1.4.2 / NanoLib 1.3.0
16
8 类/函数参考
参数 BusHardwareId 返回 true
错误的
指定要打开的每个现场总线。硬件已打开。硬件已关闭。
getProtocolSpecificAccessor () 使用此函数获取特定于协议的访问器对象。
虚拟 ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)
参数 busHwId 返回 ResultVoid
指定要获取访问器的现场总线。确认 void 函数已运行。
getProfinetDCP () 使用此函数返回对 Profinet DCP 接口的引用。
虚拟 ProfinetDCP 和 getProfinetDCP ()
返回 ProfinetDCP
获取amplerInterface () 使用此函数获取对 s 的引用ampler 接口。
虚拟Sampler接口和getSampler接口()
返回 Samp接口
指的是ampler 接口类。
setBusState () 使用此函数设置总线协议特定的状态。
虚拟 ResultVoid nlc::NanoLibAccessor::setBusState (const BusHardwareId & busHwId,const std::string & state)
参数 busHwId 状态
返回 ResultVoid
指定要打开的现场总线。将总线特定状态分配为字符串值。确认 void 函数已运行。
scanDevices () 使用此函数扫描网络中的设备。
虚拟 ResultDeviceIds nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId,NlcScanBusCallback* 回调)
参数 busHwId 回调
返回 ResultDeviceIds IOError
指定要扫描的现场总线。NlcScanBusCallback 进度跟踪器。提供设备 ID 数组。通知未找到设备。
版本:doc 1.4.2 / NanoLib 1.3.0
17
8 类/函数参考
添加设备()
使用此函数将deviceId描述的总线设备添加到NanoLib的内部设备列表中,并返回其deviceHandle。
虚拟 ResultDeviceHandle nlc::NanoLibAccessor::addDevice (DeviceId const & deviceId)
参数 deviceId 返回 ResultDeviceHandle
指定要添加到列表中的设备。提供设备句柄。
connectDevice () 使用此函数通过deviceHandle连接一个设备。
虚拟 ResultVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultVoid
IO错误
指定 NanoLib 连接到哪个总线设备。确认 void 函数已运行。通知未找到设备。
getDeviceName () 使用此函数通过deviceHandle获取设备的名称。
虚拟结果字符串 nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultString
指定 NanoLib 获取哪个总线设备的名称。以字符串形式提供设备名称。
getDeviceProductCode () 使用此函数通过deviceHandle获取设备的产品代码。
虚拟 ResultInt nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultInt
指定 NanoLib 获取哪个总线设备的产品代码。以整数形式提供产品代码。
getDeviceVendorId () 使用此函数通过deviceHandle获取设备供应商ID。
虚拟 ResultInt nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultInt
资源不可用
指定 NanoLib 获取哪个总线设备的供应商 ID。以整数形式提供供应商 ID。通知未找到任何数据。
版本:doc 1.4.2 / NanoLib 1.3.0
18
8 类/函数参考
getDeviceId () 使用此函数从 NanoLib 内部列表中获取特定设备的 ID。
虚拟 ResultDeviceId nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultDeviceId
指定 NanoLib 获取哪个总线设备的设备 ID。提供设备 ID。
getDeviceIds () 使用此函数从 NanoLib 内部列表中获取所有设备的 ID。
虚拟 ResultDeviceIds nlc::NanoLibAccessor::getDeviceIds ()
返回 ResultDeviceIds
下发设备ID列表。
getDeviceUid() 使用此函数通过deviceHandle获取设备的唯一ID(96位/12字节)。
虚拟 ResultArrayByte nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultArrayByte
资源不可用
指定 NanoLib 获取哪个总线设备的唯一 ID。以字节数组形式提供唯一 ID。通知未找到任何数据。
getDeviceSerialNumber () 使用此函数通过deviceHandle获取设备的序列号。
虚拟 ResultString NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultString
资源不可用
指定 NanoLib 获取哪个总线设备的序列号。以字符串形式提供序列号。通知未找到任何数据。
getDeviceHardwareGroup () 使用此函数通过deviceHandle获取总线设备的硬件组。
虚拟 ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultInt
指定 NanoLib 获取哪个总线设备硬件组。
以整数形式提供硬件组。
getDeviceHardwareVersion () 使用此函数通过deviceHandle获取总线设备的硬件版本。
虚拟 ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)
版本:doc 1.4.2 / NanoLib 1.3.0
19
8 类/函数参考
参数 deviceHandle
返回
结果字符串资源不可用
指定 NanoLib 获取哪个总线设备的硬件版本。以字符串形式提供设备名称。通知未找到任何数据。
getDeviceFirmwareBuildId () 使用此函数通过 deviceHandle 获取总线设备的固件构建 ID。
虚拟 ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultString
指定哪个总线设备 NanoLib 获取固件构建 ID。
以字符串形式提供设备名称。
getDeviceBootloaderVersion () 使用此函数通过deviceHandle获取总线设备的引导加载程序版本。
虚拟 ResultInt nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)
参数 deviceHandle
返回
ResultInt 资源不可用
指定 NanoLib 获取哪个总线设备的引导加载程序版本。以整数形式提供引导加载程序版本。通知未找到任何数据。
getDeviceBootloaderBuildId () 使用此函数通过 deviceHandle 获取总线设备的引导加载程序构建 ID。
虚拟 ResultDeviceId nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultString
指定 NanoLib 为其获取引导加载程序构建 ID 的总线设备。
以字符串形式提供设备名称。
rebootDevice () 使用此函数通过deviceHandle重新启动设备。
虚拟 ResultVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)
参数 deviceHandle 返回 ResultVoid
指定要重启的现场总线。确认 void 函数已运行。
getDeviceState () 使用此函数获取设备协议特定的状态。
虚拟结果字符串 nlc::NanoLibAccessor::getDeviceState (DeviceHandle const deviceHandle)
参数 deviceHandle
指定 NanoLib 获取哪个总线设备的状态。
版本:doc 1.4.2 / NanoLib 1.3.0
20
8 类/函数参考
返回结果字符串
以字符串形式提供设备名称。
setDeviceState () 使用此函数设置设备协议特定的状态。
虚拟 ResultVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle,const std::string & state)
参数 deviceHandle 状态
返回 ResultVoid
指定 NanoLib 为哪个总线设备设置状态。将特定于总线的状态分配为字符串值。确认 void 函数已运行。
获取连接状态()
使用此函数通过 deviceHandle 获取特定设备的最后已知连接状态(= Disconnected、Connected、ConnectedBootloader)
虚拟 ResultConnectionState nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultConnectionState
指定 NanoLib 获取哪个总线设备的连接状态。
提供连接状态(= 断开连接、已连接、ConnectedBootloader)。
检查连接状态()
仅当最后已知状态不是断开连接时:使用此函数通过 deviceHandle 和测试几个特定模式的操作来检查并可能更新特定设备的连接状态。
虚拟 ResultConnectionState nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultConnectionState
指定 NanoLib 检查哪个总线设备的连接状态。
提供连接状态(=未断开连接)。
assignObjectDictionary() 使用此手动函数自行为 deviceHandle 分配一个对象字典(OD)。
虚拟 ResultObjectDictionary nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle,ObjectDictionary const & objectDictionary)
参数 deviceHandle objectDictionary
返回 ResultObjectDictionary
指定 NanoLib 将 OD 分配给哪个总线设备。显示对象字典的属性。
自动分配对象字典()
使用此自动化功能让 NanoLib 为 deviceHandle 分配一个对象字典 (OD)。找到并加载合适的 OD 后,NanoLib 会自动将其分配给设备。注意:如果对象库中已加载兼容的 OD,NanoLib 将自动使用它,而无需扫描提交的目录。
虚拟 ResultObjectDictionary nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle,const std::string & dictionariesLocationPath)
版本:doc 1.4.2 / NanoLib 1.3.0
21
8 类/函数参考
参数 deviceHandle
返回
字典LocationPathResultObjectDictionary
指定 NanoLib 应自动扫描哪个总线设备以查找合适的 OD。指定 OD 目录的路径。显示对象字典的属性。
获取已分配对象词典()
使用此函数获取由deviceHandle分配给设备的对象字典。
虚拟 ResultObjectDictionary nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const 设备
处理)
参数 deviceHandle 返回 ResultObjectDictionary
指定 NanoLib 为哪个总线设备获取分配的 OD。显示对象字典的属性。
getObjectDictionaryLibrary () 此函数返回一个OdLibrary引用。
虚拟 OdLibrary& nlc::NanoLibAccessor::getObjectDictionaryLibrary ()
返回 OdLibrary&
打开整个 OD 库及其对象字典。
setLoggingLevel () 使用此函数设置所需的日志详细信息(和日志 file 大小)。默认级别为信息。
虚拟 void nlc::NanoLibAccessor::setLoggingLevel (LogLevel 级别)
参数级别
可能的日志详细信息如下:
0 = 跟踪 1 = 调试 2 = 信息 3 = 警告 4 = 错误 5 = 严重 6 = 关闭
最低级别(最大日志 file);记录任何可行的细节,以及软件启动/停止。记录调试信息(= 中间结果、发送或接收的内容等)默认级别;记录信息性消息。记录确实发生但不会停止当前算法的问题。只记录确实停止算法的严重故障。最高级别(最小日志 file);关闭日志记录;不再记录任何内容。不再记录任何内容。
设置日志回调()
使用此函数为该回调(而不是记录器本身)设置日志回调指针和日志模块(=库)。
虚拟 void nlc::NanoLibAccessor::setLoggingCallback (NlcLoggingCallback* 回调,const nlc::LogModule & logModule)
参数 *回调日志模块
设置回调指针。调整回调(不是记录器!)以适应您的库。
0 = 纳米libCore 1 = 纳米libCANopen 2 = 纳米libModbus 3 = 纳米libEtherCAT
仅为 NanoLib 核心激活回调。 仅为 CANopen 激活回调。 仅为 Modbus 激活回调。 仅为 EtherCAT 激活回调。
版本:doc 1.4.2 / NanoLib 1.3.0
22
8 类/函数参考
4 = 纳米库Rest 5 = 纳米库USB
激活仅 REST 回调。激活仅 USB 回调。
unsetLoggingCallback () 使用此函数取消日志记录回调指针。
虚拟 void nlc::NanoLibAccessor::unsetLoggingCallback ()
readNumber () 使用此函数从对象字典中读取一个数值。
虚拟 ResultInt nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle,const OdIndex odIndex)
参数deviceHandleodIndex
返回 ResultInt
指定 NanoLib 从哪个总线设备读取。指定要读取的(子)索引。提供未解释的数值(可以是有符号、无符号、fix16.16 位值)。
readNumberArray () 使用此函数从对象字典中读取数字数组。
虚拟 ResultArrayInt nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle,const uint16_t index)
参数 deviceHandle 索引
返回 ResultArrayInt
指定 NanoLib 从哪个总线设备读取。数组对象索引。提供一个整数数组。
readBytes() 使用此函数从对象字典中读取任意字节(域对象数据)。
虚拟 ResultArrayByte nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle,const OdIndex odIndex)
参数deviceHandleodIndex
返回 ResultArrayByte
指定 NanoLib 从哪个总线设备读取。指定要读取的(子)索引。提供字节数组。
readString () 使用此函数从对象目录中读取字符串。
虚拟 ResultString nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle,const OdIndex odIndex)
参数deviceHandleodIndex
返回结果字符串
指定 NanoLib 从哪个总线设备读取。指定要读取的(子)索引。以字符串形式提供设备名称。
版本:doc 1.4.2 / NanoLib 1.3.0
23
8 类/函数参考
writeNumber () 使用此函数可以将数值写入对象目录。
虚拟 ResultVoid nlc::NanoLibAccessor::writeNumber (const DeviceHandle deviceHandle、int64_t 值、const OdIndex odIndex、无符号 int bitLength)
参数deviceHandle值odIndexbitLength
返回 ResultVoid
指定 NanoLib 写入的总线设备。未解释的值(可以是有符号的、无符号的,固定为 16.16)。指定要读取的(子)索引。长度(以位为单位)。确认 void 函数已运行。
writeBytes() 使用此函数可以将任意字节(域对象数据)写入对象目录。
虚拟 ResultVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle,const std::vector & 数据, const OdIndex odIndex)
参数deviceHandle数据odIndex
返回 ResultVoid
指定 NanoLib 写入的总线设备。字节向量/数组。指定要读取的(子)索引。确认 void 函数已运行。
上传固件()
使用此功能来更新您的控制器固件。
虚拟 ResultVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle,const std::vector & fwData,NlcDataTransferCallback*回调)
参数 deviceHandle fwData NlcDataTransferCallback
返回 ResultVoid
指定 NanoLib 更新的总线设备。包含固件数据的数组。数据进度跟踪器。确认 void 函数已运行。
上传固件来源File ()
使用此功能可上传控制器固件来更新 file.
虚拟 ResultVoid nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle 设备句柄,const std::string & absoluteFile路径,NlcDataTransferCallback*回调)
参数 deviceHandle absoluteFile路径 NlcDataTransferCallback
返回 ResultVoid
指定 NanoLib 更新哪些总线设备。路径 file 包含固件数据(std::string)。数据进度跟踪器。确认 void 函数已运行。
版本:doc 1.4.2 / NanoLib 1.3.0
24
8 类/函数参考
上传引导加载程序()
使用此功能来更新您的控制器引导加载程序。
虚拟 ResultVoid nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle deviceHandle,const std::vector & btData,NlcDataTransferCallback*回调)
参数 deviceHandle btData NlcDataTransferCallback
返回 ResultVoid
指定 NanoLib 更新的总线设备。包含引导加载程序数据的数组。数据进度跟踪器。确认 void 函数已运行。
上传Bootloader来自File ()
使用此功能可以通过上传其 file.
虚拟 ResultVoid nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle 设备句柄,const std::string & bootloaderAbsoluteFile路径,NlcDataTransferCallback*回调)
参数 deviceHandle bootloaderAbsoluteFile路径 NlcDataTransferCallback
返回 ResultVoid
指定 NanoLib 更新哪些总线设备。路径 file 包含引导加载程序数据 (std::string)。数据进度跟踪器。确认 void 函数已运行。
上传Bootloader固件()
使用此功能来更新您的控制器引导程序和固件。
虚拟 ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle,const std::vector &btData,const std::vector & fwData,NlcDataTransferCallback*回调)
参数deviceHandle btData fwData NlcDataTransferCallback
返回 ResultVoid
指定 NanoLib 更新的总线设备。包含引导加载程序数据的数组。包含固件数据的数组。数据进度跟踪器。确认 void 函数已运行。
上传Bootloader固件来自File ()
使用此功能可以通过上传以下文件来更新控制器引导程序和固件: files.
虚拟 ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle 设备句柄,const std::string & bootloaderAbsoluteFile路径,const std::string & absoluteFile路径,NlcDataTransferCallback*回调)
参数 deviceHandle bootloaderAbsoluteFile绝对路径File路径 NlcDataTransferCallback
返回 ResultVoid
指定 NanoLib 更新哪些总线设备。路径 file 包含引导加载程序数据 (std::string)。路径 file 包含固件数据 (uint8_t)。数据进度跟踪器。确认 void 函数已运行。
版本:doc 1.4.2 / NanoLib 1.3.0
25
8 类/函数参考
上传NanoJ()
使用此公共函数将 NanoJ 程序上传到您的控制器。
虚拟 ResultVoid nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle,std::vector const & vmmData,NlcDataTransferCallback*回调)
参数 deviceHandle vmmData NlcDataTransferCallback
返回 ResultVoid
指定 NanoLib 上传到哪个总线设备。包含 NanoJ 数据的数组。数据进度跟踪器。确认 void 函数已运行。
上传NanoJFromFile ()
使用此公共函数将 NanoJ 程序上传到您的控制器,方法是上传 file.
虚拟 ResultVoid nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle 设备句柄,const std::string & absoluteFile路径,NlcDataTransferCallback*回调)
参数 deviceHandle absoluteFile路径 NlcDataTransferCallback
返回 ResultVoid
指定 NanoLib 上传到哪个总线设备。路径 file 包含 NanoJ 数据 (std::string)。数据进度跟踪器。确认 void 函数已运行。
disconnectDevice() 使用此函数通过 deviceHandle 断开您的设备。
虚拟 ResultVoid nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)
参数 deviceHandle 返回 ResultVoid
指定 NanoLib 断开的总线设备。确认 void 函数已运行。
removeDevice () 使用此函数可以从 NanoLib 的内部设备列表中删除您的设备。
虚拟 ResultVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)
参数 deviceHandle 返回 ResultVoid
指定 NanoLib 删除的总线设备。确认 void 函数已运行。
closeBusHardware () 使用此函数可以断开与现场总线硬件的连接。
虚拟 ResultVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)
参数 busHwId 返回 ResultVoid
指定要断开的现场总线。确认 void 函数已运行。
版本:doc 1.4.2 / NanoLib 1.3.0
26
8 类/函数参考
8.2 总线硬件标识
使用此类可以一对一地识别总线硬件或区分不同的总线硬件。此类(没有设置函数,从创建时起就不可变)还包含以下信息:
硬件(= 适配器名称、网络适配器等)要使用的协议(= Modbus TCP、CANopen 等)总线硬件说明符(= 串行端口名称、MAC 友好名称
地址等)
BusHardwareId () [1/3] 创建新的总线硬件 ID 对象的构造函数。
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & name_)
参数 busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
硬件类型(= ZK-USB-CAN-1 等)。总线通信协议(= CANopen 等)。硬件说明符(= COM3 等)。硬件的额外说明符(例如,USB 位置信息)。友好名称(= AdapterName (Port) 等)。
BusHardwareId () [2/3] 创建新的总线硬件 ID 对象的构造函数,并可选择额外的硬件说明符。
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & extraHardwareSpecifier_, std::string const & name_)
参数 busHardware_ protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
硬件类型(= ZK-USB-CAN-1 等)。总线通信协议(= CANopen 等)。硬件说明符(= COM3 等)。硬件的额外说明符(例如,USB 位置信息)。友好名称(= AdapterName (Port) 等)。
BusHardwareId () [3/3] 复制现有 busHardwareId 的构造函数。
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
参数 busHardwareId
命名要从中复制的总线硬件 ID。
equals () 将新的总线硬件 ID 与现有的进行比较。
bool nlc::BusHardwareId::equals (BusHardwareId const & 其他) const
参数 other 返回 true
同一类的另一个对象。如果两者的所有值都相等。
版本:doc 1.4.2 / NanoLib 1.3.0
27
8 类/函数参考
错误的
如果价值观不同。
getBusHardware () 读取总线硬件字符串。
std::string nlc::BusHardwareId::getBusHardware () const
返回字符串
getHardwareSpecifier () 读取总线硬件的说明符字符串(=网络名称等)。
std::string nlc::BusHardwareId::getHardwareSpecifier () const
返回字符串
getExtraHardwareSpecifier () 读取总线额外硬件的说明符字符串(= MAC 地址等)。
std::string nlc::BusHardwareId::getExtraHardwareSpecifier () const
返回字符串
getName () 读出总线硬件的友好名称。
std::string nlc::BusHardwareId::getName () const
返回字符串
getProtocol () 读取总线协议字符串。
std::string nlc::BusHardwareId::getProtocol () const
返回字符串
toString () 以字符串形式返回总线硬件 ID。
std::string nlc::BusHardwareId::toString () const
返回字符串
8.3 总线硬件选项
在这个类中的字符串的键值列表中查找打开总线硬件所需的所有选项。
版本:doc 1.4.2 / NanoLib 1.3.0
28
8 类/函数参考
BusHardwareOptions () [1/2] 构造一个新的总线硬件选项对象。
nlc::BusHardwareOptions::BusHardwareOptions () 使用函数addOption () 添加键值对。
BusHardwareOptions () [2/2] 使用已经存在的键值对构造一个新的总线硬件选项对象。
nlc::总线硬件选项::总线硬件选项 (std::map const 和选项)
参数选项
带有总线硬件操作选项的地图。
addOption () 创建附加的键和值。
void nlc::BusHardwareOptions::addOption (std::string const & key, std::string const & value)
参数键值
Example: BAUD_RATE_OPTIONS_NAME,参见 bus_hw_options_ defaults
Example: BAUD_RATE_1000K,参见 bus_hw_options_defaults
equals () 将 BusHardwareOptions 与现有的进行比较。
bool nlc::BusHardwareOptions::equals (BusHardwareOptions const & 其他) const
参数 other 返回 true
错误的
同一类的另一个对象。如果另一个对象具有完全相同的选项。如果另一个对象具有不同的键或值。
getOptions () 读出所有添加的键值对。
std::map nlc::BusHardwareOptions::getOptions () const
返回字符串映射
toString() 以字符串形式返回所有键/值。
std::string nlc::BusHardwareId::toString () const
返回字符串
8.4 总线硬件选项默认
这个默认配置选项类有以下公共属性:
版本:doc 1.4.2 / NanoLib 1.3.0
29
8 类/函数参考
const CanBus const 串行 const RESTfulBus const EtherCATBus
canBus = CanBus () serial = Serial () restfulBus = RESTfulBus() ethercatBus = EtherCATBus()
8.5 波特率
包含以下公共属性的 CAN 总线波特率的结构:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BAUD_RATE_1000K = “1000k” BAUD_RATE_800K = “800k” BAUD_RATE_500K = “500k” BAUD_RATE_250K = “250k” BAUD_RATE_125K = “125k” BAUD_RATE_100K = “100k” BAUD_RATE_50K = “50k” BAUD_RATE_20K = “20k” BAUD_RATE_10K = “10k” BAUD_RATE_5K = “5k”
8.6 CAN总线
具有以下公共属性的默认配置选项类:
const std::string const CanBaudRate const Ixxat
BAUD_RATE_OPTIONS_NAME = “CAN适配器波特率” baudRate = CanBaudRate () ixxat = Ixxat ()
8.7 CanOpenNmt服务
对于 NMT 服务,此结构包含 CANopen NMT 状态作为以下公共属性中的字符串值:
const std::string const std::string const std::string const std::string const std::string
开始 = “开始” 停止 = “停止” 预操作 = “预操作” 重置 = “重置” 重置通信 = “重置通信”
8.8 CanOpenNmt状态
此结构包含 CANopen NMT 状态作为以下公共属性中的字符串值:
const std::string const std::string const std::string const std::string const std::string
已停止 = “已停止” 预操作 = “预操作” 操作 = “操作” 初始化 = “初始化” 未知 = “未知”
8.9 EtherCATBus 结构
该结构包含以下公共属性中的 EtherCAT 通信配置选项:
版本:doc 1.4.2 / NanoLib 1.3.0
30
8 类/函数参考
const std::string NETWORK_FIRMWARE_STATE_OP- 网络状态视为固件模式。可接受
TION_NAME = “网络固件状态”
值(默认值 = PRE_OPERATIONAL):
EtherCATState::PRE_OPERATIONAL EtherCATState::SAFE_OPERATIONAL EtherCATState::OPERATIONAL
const std::string DEFAULT_NETWORK_FIRMWARE_ STATE = “PRE_OPERATIONAL”
const std::string EXCLUSIVE_LOCK_TIMEOUT_OP- 获取独占锁的超时时间(以毫秒为单位)
TION_NAME = “共享锁超时”
网络(默认值 = 500 毫秒)。
const unsigned int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = “500”
const std::string SHARED_LOCK_TIMEOUT_OPTION_ 获取共享锁的超时时间(毫秒)
NAME =“共享锁超时”
网络(默认值 = 250 毫秒)。
const unsigned int DEFAULT_SHARED_LOCK_TIMEOUT = “250”
const std::string READ_TIMEOUT_OPTION_NAME = 读取操作的超时时间(以毫秒为单位)(默认
“读取超时”
=700毫秒)。
const unsigned int DEFAULT_READ_TIMEOUT = “700”
const std::string WRITE_TIMEOUT_OPTION_NAME = 写操作的超时时间(以毫秒为单位)(默认
“写入超时”
=200毫秒)。
const unsigned int DEFAULT_WRITE_TIMEOUT = “200”
const std::string READ_WRITE_ATTEMPTS_OPTION_ 最大读取或写入尝试次数(非零值
NAME =“读/写尝试”
仅限;默认值 = 5)。
const unsigned int DEFAULT_READ_WRITE_ATTEMPTS = “5”
const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = “更改网络状态尝试”
改变网络状态的最大尝试次数(仅非零值;默认值 = 10)。
const unsigned int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = “10”
const std::string PDO_IO_ENABLED_OPTION_NAME 启用或禁用数字输入的 PDO 处理 /
=“PDO IO 已启用”
输出(仅“True”或“False”;默认 = “True”)。
const std::string DEFAULT_PDO_IO_ENABLED = “True”
8.10 EtherCATState 结构
此结构包含 EtherCAT 从站/网络状态作为以下公共属性中的字符串值。注意:开机时的默认状态为 PRE_OPERATIONAL;NanoLib 在非实时操作系统中无法提供可靠的“OPERATIONAL”状态:
const std::string const std::string const std::string const std::string const std::string const std::string
NONE = “无” INIT = “初始化” PRE_OPERATIONAL = “预操作” BOOT = “启动” SAFE_OPERATIONAL = “安全操作” OPERATIONAL = “操作”
版本:doc 1.4.2 / NanoLib 1.3.0
31
8 类/函数参考
8.11 Ixxat
该结构包含以下公共属性中有关 Ixxat usb-to-can 的所有信息:
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = “ixxat 适配器总线编号”
const IxxatAdapterBusNumber 适配器总线编号 = IxxatAdapterBusNumber ()
8.12 IxxatAdapterBusNumber
此结构在以下公共属性中保存 Ixxat usb-to-can 的总线号:
const std::string const std::string const std::string const std::string
总线编号 0_默认 = “0” 总线编号 1 = “1” 总线编号 2 = “2” 总线编号 3 = “3”
8.13峰值
此结构包含 Peak usb-to-can 的所有信息,包括以下公共属性:
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = “峰值适配器总线号”
const PeakAdapterBusNumber 适配器总线编号 = PeakAdapterBusNumber ()
8.14 峰值适配器总线编号
此结构在以下公共属性中保存 Peak usb-to-can 的总线号:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BUS_NUMBER_1_DEFAULT = std::to_string (PCAN_USBBUS1) BUS_NUMBER_2 = std::to_string (PCAN_USBBUS2) BUS_NUMBER_3 = std::to_string (PCAN_USBBUS3) BUS_NUMBER_4 = std::to_string (PCAN_USBBUS4) BUS_NUMBER_5 = std::to_string (PCAN_USBBUS5) BUS_NUMBER_6 = std::to_string (PCAN_USBBUS6) BUS_NUMBER_7 = std::to_string (PCAN_USBBUS7) BUS_NUMBER_8 = std::to_string (PCAN_USBBUS8) BUS_NUMBER_9 = std::to_string (PCAN_USBBUS9) BUS_NUMBER_10 = std::to_string (PCAN_USBBUS10) BUS_NUMBER_11 = std::to_string (PCAN_USBBUS11) BUS_NUMBER_12 = std::to_string (PCAN_USBBUS12) BUS_NUMBER_13 = std::to_string (PCAN_USBBUS13) BUS_NUMBER_14 = std::to_string (PCAN_USBBUS14) BUS_NUMBER_15 = std::to_string (PCAN_USBBUS15) BUS_NUMBER_16 = std::to_string (PCAN_USBBUS16)
8.15 设备句柄
此类表示用于控制总线上的设备的句柄,并具有以下公共成员函数。
设备句柄 () 设备句柄 (uint32_t 句柄)
版本:doc 1.4.2 / NanoLib 1.3.0
32
8 类/函数参考
equals () 将自身与给定的设备句柄进行比较。
bool 等于 (DeviceHandle const 其他) const (uint32_t 句柄)
toString () 返回设备句柄的字符串表示形式。
std::string toString()const
get () 返回设备句柄。
uint32_t 获取 () const
8.16 设备ID
使用此类(从创建开始就不是不可变的)来识别和区分总线上的设备:
硬件适配器标识符
设备标识符
描述
设备 ID/描述值的含义取决于总线。例如amp例如,CAN总线可以使用整数ID。
DeviceId () [1/3] 构造一个新的设备ID对象。
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId_,无符号整数 deviceId_,std::string const & description_)
参数 busHardwareId_ deviceId_ description_
总线标识符。索引;取决于总线(= CANopen 节点 ID 等)。描述(可以为空);取决于总线。
DeviceId () [2/3] 使用扩展 ID 选项构造一个新的设备 ID 对象。
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId,无符号整型设备Id_,std::string const & description_ std::vector const & extraId_, std::string const & extraStringId_)
参数 busHardwareId_ deviceId_ description_ extraId_ extraStringId_
总线标识符。索引;取决于总线(= CANopen 节点 ID 等)。描述(可以为空);取决于总线。附加 ID(可以为空);含义取决于总线。附加字符串 ID(可以为空);含义取决于总线。
DeviceId () [3/3] 构造设备ID对象的副本。
nlc::DeviceId::DeviceId (DeviceId const &)
版本:doc 1.4.2 / NanoLib 1.3.0
33
8 类/函数参考
参数 deviceId_
要复制的设备 ID。
equals() 将新对象与现有对象进行比较。
bool nlc::DeviceId::equals (DeviceId const & 其他) const
返回布尔值
getBusHardwareId () 读取总线硬件ID。
总线硬件ID nlc::DeviceId::getBusHardwareId () const
返回 BusHardwareId
getDescription () 读出设备描述(可能未使用)。
std::string nlc::DeviceId::getDescription () const
返回字符串
getDeviceId () 读出设备ID(可能未使用)。
无符号整数 nlc::DeviceId::getDeviceId () const
返回无符号整数
toString () 以字符串形式返回对象。
std::string nlc::DeviceId::toString () const
返回字符串
getExtraId () 读取设备的额外ID(可能未使用)。
const std::vector获取额外ID()
返回向量
附加额外 ID 的向量(可能为空);含义取决于总线。
getExtraStringId () 读取设备的额外字符串ID(可能未使用)。
std::string getExtraStringId () const
版本:doc 1.4.2 / NanoLib 1.3.0
34
8 类/函数参考
返回字符串
附加字符串 ID(可能为空);含义取决于总线。
8.17 日志级别转换器
此类以字符串形式返回您的日志级别。static std::string toString(nlc::LogLevel logLevel)
8.18 日志模块转换器
此类以字符串形式返回您库特定的日志模块setLoggingLevel()。
静态 std::string
toString(nlc::LogModule logModule)
静态 std::string toString (nlc::LogModule logModule)
8.19 对象字典
该类代表控制器的对象字典,有以下公共成员函数:getDeviceHandle()
virtual ResultDeviceHandle getDeviceHandle () const 返回 ResultDeviceHandle
getObject () virtual ResultObjectSubEntry getObject (OdIndex const odIndex) 返回 ResultObjectSubEntry
getObjectEntry()虚拟ResultObjectEntry getObjectEntry(uint16_t索引)
返回 ResultObjectEntry
告知对象的属性。
获取XmlFile名称()虚拟ResultString getXmlFile名称()const
返回结果字符串
返回 XML file 名称为字符串。
readNumber () virtual ResultInt readNumber (OdIndex const odIndex) 返回 ResultInt
readNumberArray()虚拟ResultArrayInt readNumberArray(uint16_t const index)
版本:doc 1.4.2 / NanoLib 1.3.0
35
8 类/函数参考
返回 ResultArrayInt readString ()
virtual ResultString readString (OdIndex const odIndex) 返回 ResultString readBytes () virtual ResultArrayByte readBytes (OdIndex const odIndex) 返回 ResultArrayByte writeNumber () virtual ResultVoid writeNumber (OdIndex const odIndex, const int64_t value) 返回 ResultVoid writeBytes () virtual ResultVoid writeBytes (OdIndex const OdIndex, std::vector
const & data) 返回 ResultVoid 相关链接 OdIndex
8.20 对象入口
此类表示对象字典的对象条目,具有以下静态受保护属性和公共成员函数:
静态 nlc::ObjectSubEntry 无效对象
getName () 以字符串形式读出对象的名称。
虚拟 std::string 获取名称 () const
getPrivate () 检查对象是否是私有的。
虚拟 bool getPrivate () const
getIndex () 读出对象索引的地址。
虚拟 uint16_t getIndex()const
版本:doc 1.4.2 / NanoLib 1.3.0
36
8 类/函数参考
getDataType () 读取对象的数据类型。
虚拟 nlc::ObjectEntryDataType 获取数据类型 () const
getObjectCode () 读出对象代码:
Null Deftype Defstruct Var 数组记录
0x00 0x05 0x06 0x07 0x08 0x09
虚拟 nlc::ObjectCode getObjectCode () const
getObjectSaveable () 检查对象是否可保存及其类别(有关更多详细信息,请参阅产品手册):APPLICATION、COMMUNICATION、DRIVE、MISC_CONFIG、MODBUS_RTU、NO、TUNING、CUSTOMER、ETHERNET、CANOPEN、VERIFY1020、UNKNOWN_SAVEABLE_TYPE
虚拟 nlc::ObjectSaveable getObjectSaveable () const
getMaxSubIndex () 读出此对象支持的子索引数量。
虚拟 uint8_t getMaxSubIndex () const
getSubEntry()虚拟nlc::ObjectSubEntry&getSubEntry(uint8_t subIndex)
另请参阅ObjectSubEntry。
8.21 对象子条目
此类表示对象字典的对象子条目(子索引),并具有以下公共成员函数:
getName () 以字符串形式读出对象的名称。
虚拟 std::string 获取名称 () const
getSubIndex () 读取子索引的地址。
虚拟 uint8_t getSubIndex () const
版本:doc 1.4.2 / NanoLib 1.3.0
37
8 类/函数参考
getDataType () 读取对象的数据类型。
虚拟 nlc::ObjectEntryDataType 获取数据类型 () const
getSdoAccess () 检查子索引是否可以通过 SDO 访问:
只读
1
只写
2
读写
3
禁止访问
0
虚拟 nlc::ObjectSdoAccessAttribute getSdoAccess () const
getPdoAccess () 检查子索引是否可通过 PDO 访问/映射:
Tx
1
Rx
2
发送接收
3
不
0
虚拟 nlc::ObjectPdoAccessAttribute getPdoAccess () const
getBitLength () 检查子索引长度。
虚拟 uint32_t getBitLength () const
getDefaultValueAsNumeric () 读取数字数据类型子索引的默认值。
虚拟 ResultInt getDefaultValueAsNumeric (std::string const & key) const
getDefaultValueAsString () 读取字符串数据类型的子索引的默认值。
虚拟 ResultString getDefaultValueAsString (std::string const & key) const
getDefaultValues () 读取子索引的默认值。
虚拟 std::map获取默认值 () const
版本:doc 1.4.2 / NanoLib 1.3.0
38
8 类/函数参考
readNumber () 读出子索引的实际数字值。
虚拟 ResultInt 读取数 () const
readString () 读出子索引的字符串实际值。
虚拟结果字符串读取字符串()const
readBytes () 以字节为单位读出子索引的实际值。
虚拟ResultArrayByte readBytes()const
writeNumber () 在子索引中写入一个数值。
虚拟 ResultVoid writeNumber (const int64_t 值) const
writeBytes () 以字节为单位在子索引中写入值。
虚拟 ResultVoid writeBytes (std::vector const & 数据) const
8.22 OD索引
使用此类(从创建之日起不可变)包装和定位对象目录索引/子索引。设备的 OD 最多有 65535 (0xFFFF) 行和 255 (0xFF) 列;不连续的行之间有间隙。有关更多详细信息,请参阅 CANopen 标准和产品手册。
OdIndex () 构造一个新的OdIndex 对象。
nlc::OdIndex::OdIndex (uint16_t 索引,uint8_t 子索引)
参数索引子索引
从 0 到 65535(0xFFFF),包括从 0 到 255(0xFF),包括
getIndex () 读出索引(从 0x0000 到 0xFFFF)。
uint16_t nlc::OdIndex::getIndex () const
返回 uint16_t
getSubindex () 读取子索引(从 0x00 到 0xFF)
uint8_t nlc::OdIndex::getSubIndex () const
版本:doc 1.4.2 / NanoLib 1.3.0
39
8 类/函数参考
返回 uint8_t
toString() 将索引和子索引以字符串形式返回。字符串默认 0xIIII:0xSS 内容如下:
I = 索引从 0x0000 到 0xFFFF
S = 子索引从 0x00 到 0xFF
std::string nlc::OdIndex::toString () const
返回 0xIIII:0xSS
默认字符串表示
8.23 OdLibrary
使用此编程接口从 XML 创建 ObjectDictionary 类的实例。通过assignObjectDictionary,您可以将每个实例绑定到特定设备,因为会创建唯一标识符。这样创建的 ObjectDictionary 实例存储在 OdLibrary 对象中,可通过索引访问。ODLibrary 类从以下位置加载 ObjectDictionary 项目 file 或数组,存储它们,并具有以下公共成员函数:
获取对象词典计数 () 虚拟 uint32_t 获取对象词典计数 () const
获取对象词典()虚拟结果对象词典获取对象词典(uint32_t odIndex)
返回 ResultObjectDictionary
添加对象词典来自File ()
虚拟 ResultObjectDictionary addObjectDictionaryFromFile (std::string const & absoluteXmlFile小路)
返回 ResultObjectDictionary
添加对象词典()
虚拟 ResultObjectDictionary addObjectDictionary ( std::vector const & odXmlData,const std::string &xmlFile路径 = std::string ())
返回 ResultObjectDictionary
8.24 OdTypesHelper
除了以下公共成员函数外,此类还包含自定义数据类型。注意:要检查您的自定义数据类型,请在 od_types.hpp 中查找枚举类 ObjectEntryDataType。
uintToObjectCode () 将无符号整数转换为目标代码:
空定义类型
0x00 0x05
版本:doc 1.4.2 / NanoLib 1.3.0
40
8 类/函数参考
Defstruct Var 数组记录
0x06 0x07 0x08 0x09
静态 ObjectCode uintToObjectCode (无符号 int objectCode)
isNumericDataType () 告知数据类型是否为数字。
静态 bool isNumericDataType (ObjectEntryDataType 数据类型)
isDefstructIndex () 告知一个对象是否是定义结构索引。
static bool isDefstructIndex (uint16_t typeNum)
isDeftypeIndex () 告知一个对象是否是定义类型索引。
static bool isDeftypeIndex (uint16_t typeNum)
isComplexDataType () 告知数据类型是否复杂。
静态 bool isComplexDataType (ObjectEntryDataType 数据类型)
uintToObjectEntryDataType () 将无符号整数转换为 OD 数据类型。
静态 ObjectEntryDataType uintToObjectEntryDataType (uint16_t objectDataType)
objectEntryDataTypeToString () 将 OD 数据类型转换为字符串。
静态 std::string objectEntryDataTypeToString (ObjectEntryDataType odDataType)
stringToObjectEntryDatatype () 如果可能,将字符串转换为 OD 数据类型。否则,返回 UNKNOWN_DATATYPE。
静态 ObjectEntryDataType stringToObjectEntryDatatype (std::string dataTypeString)
版本:doc 1.4.2 / NanoLib 1.3.0
41
8 类/函数参考
objectEntryDataTypeBitLength () 告知对象条目数据类型的位长度。
静态 uint32_t objectEntryDataTypeBitLength (ObjectEntryDataType const & dataType)
8.25 RESTfulBus 结构
此结构包含 RESTful 接口(通过以太网)的通信配置选项。它包含以下公共属性:
const std::string const 无符号长整型 const std::string const 无符号长整型 const std::string const 无符号长整型
CONNECT_TIMEOUT_OPTION_NAME = “RESTful 连接超时” DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = “RESTful 请求超时” DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = “RESTful 响应超时” DEFAULT_RESPONSE_TIMEOUT = 750
8.26 ProfinetDCP
在 Linux 下,调用应用程序需要 CAP_NET_ADMIN 和 CAP_NET_RAW 功能。要启用:sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable。在 Windows 中,ProfinetDCP 接口使用 WinPcap(使用版本 4.1.3 测试)或 Npcap(使用版本 1.60 和 1.30 测试)。因此,它按以下顺序搜索动态加载的 wpcap.dll 库(注意:当前不支持 Win10Pcap):
1.Nanolib.dll目录 2.Windows系统目录SystemRoot%System32 3.Npcap安装目录SystemRoot%System32Npcap 4.环境路径
该类代表Profinet DCP接口,具有以下公共成员函数:
getScanTimeout () 通知设备扫描超时(默认值 = 2000 毫秒)。
虚拟 uint32_t nlc::ProfinetDCP::getScanTimeout () const
setScanTimeout () 设置设备扫描超时(默认值 = 2000 毫秒)。
虚拟 void nlc::setScanTimeout (uint32_t timeoutMsec)
getResponseTimeout () 通知设备设置、重置和闪烁操作的响应超时(默认值 = 1000 毫秒)。
虚拟 uint32_t nlc::ProfinetDCP::getResponseTimeout () const
setResponseTimeout () 通知设备设置、重置和闪烁操作的响应超时(默认值 = 1000 毫秒)。
虚拟 void nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)
版本:doc 1.4.2 / NanoLib 1.3.0
42
8 类/函数参考
是否可用服务()
使用此功能检查 Profinet DCP 服务可用性。
网络适配器有效性/可用性 Windows:WinPcap/Npcap 可用性 Linux:CAP_NET_ADMIN/CAP_NET_RAW 功能
虚拟 ResultVoid nlc::ProfinetDCP::isServiceAvailable(常量 BusHardwareId 和 busHardwareId)
参数 BusHardwareId 返回 true
错误的
要检查 Profinet DCP 服务的硬件 ID。服务可用。服务不可用。
scanProfinetDevices () 使用此函数扫描硬件总线以查找 Profinet 设备的存在。
虚拟 ResultProfinetDevices scanProfinetDevices(const BusHardwareId & busHardwareId)
参数 BusHardwareId 返回结果ProfinetDevices
指定要打开的每个现场总线。硬件已打开。
setupProfinetDevice () 建立以下设备设置:
设备名称
IP 地址
网络掩码
默认网关
虚拟 ResultVoid nlc::setupProfinetDevice (const BusHardwareId & busHardwareId、const ProfinetDevice struct & profinetDevice、bool savePermanent)
resetProfinetDevice () 停止设备并将其重置为出厂默认设置。
虚拟 ResultVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId,const ProfinetDevice & profinetDevice)
blinkProfinetDevice () 命令 Profinet 设备开始闪烁其 Profinet LED。
虚拟 ResultVoid nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId,const ProfinetDevice &profinetDevice)
validProfinetDeviceIp () 使用此函数检查设备的 IP 地址。
虚拟 ResultVoid 验证ProfinetDeviceIp(const BusHardwareId &busHardwareId,const ProfinetDevice & profinetDevice)
参数 BusHardwareId ProfinetDevice
指定要检查的硬件 ID。指定要验证的 Profinet 设备。
版本:doc 1.4.2 / NanoLib 1.3.0
43
8 类/函数参考
返回 ResultVoid
8.27 ProfinetDevice 结构
Profinet设备数据具有以下公共属性:
std::string std::string std::array< uint8_t, 6 > uint32_t uint32_t uint32_t
设备名称 设备供应商 mac地址 ip地址 网络掩码 默认网关
MAC 地址以数组形式提供,格式为 macAddress = {xx, xx, xx, xx, xx, xx};而 IP 地址、网络掩码和网关均被解释为大端十六进制数,例如:
IP地址:192.168.0.2 网络掩码:255.255.0.0 网关:192.168.0.1
0xC0A80002 0xFFFF0000 0xC0A80001
8.28 结果类
使用这些类的“可选”返回值来检查函数调用是否成功,并找出失败的原因。成功时,hasError() 函数返回 false。通过 getResult(),您可以按类型(ResultInt 等)读取结果值。如果调用失败,您可以通过 getError() 读取原因。
受保护的属性
字符串 NlcErrorCode uint32_t
错误字符串 错误代码 exErrorCode
此外,此类还具有以下公共成员函数:
hasError () 读出函数调用的成功情况。
bool nlc::Result::hasError () const
返回
真 假
调用失败,使用getError()读出值。调用成功,使用getResult()读出值。
getError () 读出函数调用失败的原因。
const std::string nlc::Result::getError () const
返回常量字符串
版本:doc 1.4.2 / NanoLib 1.3.0
44
8 类/函数参考
result() 以下函数有助于定义精确的结果:
结果(std::string const & errorString_)
结果(NlcErrorCode const & errCode,std::string const & errorString_)
结果(NlcErrorCode const & errCode,const uint32_t exErrCode,std::string const & errorString_)
结果 (结果 const & 结果)
getErrorCode () 读取NlcErrorCode。
NlcErrorCode getErrorCode () const
获取ExErrorCode() uint32_t 获取ExErrorCode() const
8.28.1 结果无效
如果函数返回 void,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数和受保护属性,并具有以下公共成员函数:
ResultVoid () 以下函数有助于定义精确的空结果:
ResultVoid (std::string const &errorString_)
ResultVoid (NlcErrorCode const & errCode,std::string const & errorString_)
ResultVoid (NlcErrorCode const & errCode,const uint32_t exErrCode,std::string const & errorString_)
ResultVoid (结果 const & 结果)
8.28.2 结果
如果函数返回整数,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则返回整数结果。
int64_t 获取结果 () const
返回 int64_t
版本:doc 1.4.2 / NanoLib 1.3.0
45
8 类/函数参考
ResultInt () 以下函数有助于定义精确的整数结果:
结果Int (int64_t result_)
结果Int(std::string const & errorString_)
ResultInt(NlcErrorCode const 和 errCode,std::string const 和 errorString_)
ResultInt (NlcErrorCode const & errCode,const uint32_t exErrCode,std::string const & errorString_)
ResultInt (结果 const & 结果)
8.28.3 结果字符串
如果函数返回字符串,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出字符串结果。
const std::string nlc::ResultString::getResult () const
返回常量字符串
ResultString () 以下函数有助于定义精确的字符串结果:
结果字符串(std::string const & message,bool hasError_)
结果字符串(NlcErrorCode const 和 errCode,std::string const 和 errorString_)
结果字符串(NlcErrorCode const & errCode,const uint32_t exErrCode,std::string const & errorString_)
结果字符串 (结果 const & 结果)
8.28.4 结果数组字节
如果函数返回字节数组,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出字节向量。
const std::vector nlc::ResultArrayByte::getResult () const
返回 const 向量
版本:doc 1.4.2 / NanoLib 1.3.0
46
8 类/函数参考
ResultArrayByte () 以下函数有助于定义精确的字节数组结果:
结果数组字节 (std::vector const & result_)
结果数组字节 (std::string const & errorString_)
ResultArrayByte (NlcErrorCode const & errCode,std::string const & error String_)
ResultArrayByte(NlcErrorCode const&errCode,const uint32_t exErrCode,std::string const&errorString_)
ResultArrayByte (结果 const & 结果)
8.28.5 结果数组Int
如果函数返回整数数组,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出整数向量。
const std::vector nlc::ResultArrayInt::getResult () const
返回 const 向量
ResultArrayInt () 以下函数有助于定义精确的整数数组结果:
结果数组Int (std::vector const & result_)
结果数组Int (std::string const & errorString_)
ResultArrayInt (NlcErrorCode const & errCode,std::string const & error String_)
ResultArrayInt(NlcErrorCode const&errCode,const uint32_t exErrCode,std::string const&errorString_)
ResultArrayInt (结果 const & 结果)
8.28.6 结果总线硬件标识
如果函数返回总线硬件 ID 数组,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出总线硬件 ID 向量。
const std::vector nlc::ResultBusHwIds::getResult () const
参数 const vector
版本:doc 1.4.2 / NanoLib 1.3.0
47
8 类/函数参考
ResultBusHwIds () 以下函数有助于定义精确的总线硬件 ID 数组结果:
结果总线状态标识 (std::vector const & result_)
ResultBusHwIds(std::string const&errorString_)
ResultBusHwIds(NlcErrorCode const 和 errCode,std::string const 和 errorString_)
ResultBusHwIds(NlcErrorCode const & errCode,const uint32_t exErrCode,std::string const & errorString_)
ResultBusHwIds(结果 const & 结果)
8.28.7 结果设备ID
如果函数返回设备 ID,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出设备 ID 向量。
设备ID nlc::Result设备ID::getResult () const
返回 const 向量
ResultDeviceId () 以下函数有助于定义精确的设备 ID 结果:
结果设备标识 (设备标识 const & result_)
结果设备 ID(std::string const & errorString_)
ResultDeviceId(NlcErrorCode const 和 errCode,std::string const 和 errorString_)
ResultDeviceId(NlcErrorCode const&errCode,const uint32_t exErrCode,std::string errorString_)
ResultDeviceId(结果 const & 结果)
8.28.8 结果设备 ID
如果函数返回设备 ID 数组,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则返回设备 ID 向量。
设备 ID nlc::ResultDeviceIds::getResult () const
返回 const 向量
版本:doc 1.4.2 / NanoLib 1.3.0
48
8 类/函数参考
ResultDeviceIds () 以下函数有助于定义精确的设备 ID 数组结果:
结果设备 ID (std::vector const & result_)
结果设备标识(std::string const & errorString_)
ResultDeviceIds(NlcErrorCode const 和 errCode,std::string const 和 errorString_)
ResultDeviceIds(NlcErrorCode const & errCode,const uint32_t exErrCode,std::string const & errorString_)
ResultDeviceIds(结果 const & 结果)
8.28.9 结果设备句柄
如果函数返回设备句柄的值,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出设备句柄。
设备句柄 nlc::ResultDeviceHandle::getResult () const
返回 DeviceHandle
ResultDeviceHandle () 以下函数有助于定义精确的设备句柄结果:
结果设备句柄 (设备句柄 const & result_)
结果设备句柄 (std::string const & errorString_)
ResultDeviceHandle(NlcErrorCode const&errCode,std::string const&errorString_)
ResultDeviceHandle(NlcErrorCode const & errCode,const uint32_t exErrCode,std::string const & errorString_)
结果设备句柄 (结果 const & 结果)
8.28.10 结果对象词典
如果函数返回对象字典的内容,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出设备 ID 向量。
const nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult () const
版本:doc 1.4.2 / NanoLib 1.3.0
49
8 类/函数参考
返回
常量向量
ResultObjectDictionary () 以下函数有助于定义精确的对象字典结果:
结果对象词典 (nlc::ObjectDictionary const & result_)
结果对象词典 (std::string const & errorString_)
ResultObjectDictionary(NlcErrorCode const 和 errCode,std::string const 和 errorString_)
ResultObjectDictionary(NlcErrorCode const&errCode,const uint32_t exErrCode,std::string const&errorString_)
结果对象词典 (结果 const & 结果)
8.28.11 结果连接状态
如果函数返回设备连接状态信息,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出设备句柄。
设备连接状态信息 nlc::ResultConnectionState::getResult () const
返回 DeviceConnectionStateInfo Connected / Disconnected / ConnectedBootloader
ResultConnectionState () 以下函数有助于定义确切的连接状态结果:
结果连接状态(设备连接状态信息 const & result_)
结果连接状态 (std::string const & errorString_)
ResultConnectionState(NlcErrorCode const 和 errCode,std::string const 和 errorString_)
ResultConnectionState(NlcErrorCode const&errCode,const uint32_t exErrCode,std::string const&errorString_)
ResultConnectionState(结果 const & 结果)
8.28.12 结果对象条目
如果函数返回对象条目,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
版本:doc 1.4.2 / NanoLib 1.3.0
50
8 类/函数参考
getResult () 如果函数调用成功,则返回设备 ID 向量。
nlc::ObjectEntry const& nlc::ResultObjectEntry::getResult () const
返回 const ObjectEntry
ResultObjectEntry () 以下函数有助于定义精确的对象输入结果:
结果对象入口 (nlc::ObjectEntry const & result_)
结果对象入口 (std::string const & errorString_)
ResultObjectEntry(NlcErrorCode const&errCode,std::string const&errorString_)
ResultObjectEntry(NlcErrorCode const&errCode,const uint32_t exErrCode,std::string const&errorString_)
结果对象入口 (结果 const & 结果)
8.28.13 结果对象子条目
如果函数返回对象子条目,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则返回设备 ID 向量。
nlc::ObjectSubEntry const & nlc::ResultObjectSubEntry::getResult () const
返回 const ObjectSubEntry
ResultObjectSubEntry () 以下函数有助于定义精确的对象子条目结果:
结果对象子入口 (nlc::ObjectEntry const & result_)
结果对象子入口 (std::string const & errorString_)
ResultObjectSubEntry(NlcErrorCode const&errCode,std::string const&errorString_)
ResultObjectSubEntry(NlcErrorCode const&errCode,const uint32_t exErrCode,std::string const&errorString_)
ResultObjectSubEntry (结果 const & 结果)
8.28.14 结果Profinet设备
如果函数返回 Profinet 设备,NanoLib 将向您发送此类的实例。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
版本:doc 1.4.2 / NanoLib 1.3.0
51
8 类/函数参考
getResult () 如果函数调用成功,则读出 Profinet 设备向量。
const std::vector & 获取结果 () const
ResultProfinetDevices () 以下函数有助于定义精确的 Profinet 设备。
结果ProfinetDevices(const std::vector & profinet设备)
ResultProfinetDevices(const 结果 & 结果)
ResultProfinetDevices(const std::string &errorText,NlcErrorCode errorCode = NlcErrorCode::GeneralError,uint32_t extendedErrorCode = 0)
8.28.15 结果amp数据数组
如果函数返回如下内容,NanoLib 将向你发送此类的一个实例ample 数据数组。该类从结果类继承公共函数/受保护属性,并具有以下公共成员函数:
getResult () 如果函数调用成功,则读出数据数组。
const std::vector <SampleData>&getResult()const
结果ampleDataArray () 以下函数有助于定义精确的 Profinet 设备。
结果ampleDataArray (const std::vector<SampleData>&数据数组)
结果ampleDataArray (const std::string &errorDesc,const NlcErrorCode errorCode = NlcErrorCode::GeneralError,const uint32_t extendedErrorCode = 0)
结果ampleDataArray(const ResultSampleDataArray 及其他)
结果ampleDataArray(const 结果 & 结果)
8.28.16 结果amp勒尔州
如果函数返回如下内容,NanoLib 将向你发送此类的一个实例ampler 状态。该类从结果类继承了公共函数/受保护的属性,并具有以下公共成员函数:
getResult () 读出amp如果函数调用成功,则 ler 状态向量。
SamplerState 获取结果 () const
返回 SamplerState>
未配置 / 已配置 / 就绪 / 正在运行 / 已完成 / 失败 / 已取消
版本:doc 1.4.2 / NanoLib 1.3.0
52
8 类/函数参考
结果amplerState () 以下函数有助于定义确切的amp勒州。
结果amplerState(const SamplerState 状态)
结果amplerState(const std::string&errorDesc,const NlcErrorCode errorCode = NlcErrorCode::GeneralError,const uint32_t
扩展错误代码 = 0)
结果amplerState(const ResultSamplerState 和其他)
结果amplerState(const 结果 & 结果)
8.29 Nlc错误代码
如果出现错误,结果类将报告此枚举中列出的错误代码之一。
错误代码 成功 GeneralError BusUnavailable CommunicationError ProtocolError
OD不存在 OD访问无效 OD类型不匹配 操作中止 操作不支持 无效操作
参数无效访问被拒绝资源未找到资源不可用内存不足超时错误
C:类别 D:描述 R:原因 C:无。 D:无错误。 R:操作成功完成。
C:未指定。D:未指定的错误。R:不属于其他类别的故障。
C:总线。D:硬件总线不可用。R:总线不存在、切断或缺陷。
C:通信。D:通信不可靠。R:意外数据、错误的 CRC、帧或奇偶校验错误等。
C:协议。D:协议错误。R:不支持的协议选项后的响应,设备报告不支持的协议,协议中的错误(例如,SDO 段同步位)等。R:对不支持的协议(选项)或协议中的错误(例如,SDO 段同步位)等的响应或设备报告。R:不支持的协议(选项)或协议中的错误(例如,SDO 段同步位)等。
C:对象字典。D:OD地址不存在。R:对象字典中没有此地址。
C:对象字典。D:访问 OD 地址无效。R:尝试写入只读地址或从只写地址读取。
C:对象字典。D:类型不匹配。R:值未转换为指定类型,例如,试图将字符串视为数字。
C:应用程序。D:进程中止。R:进程因应用程序请求而中断。仅当回调函数(例如,来自总线扫描)中断操作时才返回。
C:常见。D:不支持该进程。R:不支持硬件总线/设备。
C:常见。D:当前上下文中进程不正确,或当前参数无效。R:尝试重新连接已连接的总线/设备。尝试断开已断开连接的总线/设备。尝试在固件模式下执行引导加载程序操作,反之亦然。
C:普通。D:论据无效。R:逻辑或语法错误。
C:常见。D:拒绝访问。R:缺乏执行请求操作的权限或能力。
C:通用。D:未找到指定项目。R:硬件总线、协议、设备、设备上的 OD 地址,或 file 未找到。
C:常见。D:未找到指定项目。R:繁忙、不存在、中断或缺陷。
C:常见。D:内存不足。R:内存太小,无法处理此命令。
C:普通。D:进程超时。R:超时后返回。超时可能是设备响应时间、获得共享或独占资源访问的时间,或将总线/设备切换到合适状态的时间。
版本:doc 1.4.2 / NanoLib 1.3.0
53
8 类/函数参考
8.30 Nlc回调
这个回调的父类有以下公共成员函数:callback()
虚拟 ResultVoid 回调()
返回
结果无效
8.31 NlcDataTransfer回调
使用此回调类进行数据传输(固件更新、NanoJ 上传等)。1. 对于固件上传:定义一个“共同类”,使用自定义回调方法扩展此类
实现。2. 在 NanoLibAccessor.uploadFirmware() 调用中使用“共同类”的实例。主类本身具有以下公共成员函数:
回调()虚拟 ResultVoid 回调(nlc::DataTransferInfo info,int32_t data)
返回
结果无效
8.32 NlcScanBus回调
使用此回调类进行总线扫描。1. 定义一个“共同类”,使用自定义回调方法实现来扩展此类。2. 在 NanoLibAccessor.scanDevices () 调用中使用“共同类”的实例。主类本身具有以下公共成员函数。
打回来 ()
虚拟 ResultVoid 回调(nlc::BusScanInfo 信息,std::vector const & devicesFound,int32_t 数据)
返回 ResultVoid
8.33 NlcLogging回调
使用此回调类来记录回调。1. 定义一个类,使用自定义回调方法实现来扩展此类 2. 使用指向其实例的指针来通过 NanoLibAccessor 设置回调 >
设置日志回调(…)。
虚拟 void 回调(const std::string 和 payload_str、const std::string 和 formatted_str、const std::string 和 logger_name、const unsigned int log_level、const std::uint64_t time_since_epoch、const size_t thread_id)
8.34秒amp接口
使用此类来配置、启动和停止ampler,或者得到ampled 数据并获取为ampler 的状态或上次错误。该类具有以下公共成员函数。
版本:doc 1.4.2 / NanoLib 1.3.0
54
8 类/函数参考
configure () 配置为amp勒。
虚拟 ResultVoid nlc::SamplerInterface::configure(const DeviceHandle deviceHandle,const Sampler配置 & sampler配置)
参数 [in] deviceHandle [in] sampler配置
返回 ResultVoid
指定要配置哪个设备ampler for。指定配置属性的值。确认 void 函数已运行。
getData () 获取amp领导数据。
虚拟结果ampleDataArray nlc::SamplerInterface::getData(const DeviceHandle 设备句柄)
参数 [in] deviceHandle 返回 ResultSamp数据数组
指定为其获取数据的设备。
提供ampled 数据,如果是,则为空数组amplerNotify 在启动时处于活动状态。
getLastError () 获取为ampler 的最后一个错误。
虚拟 ResultVoid nlc::SamplerInterface::getLastError(const DeviceHandle deviceHandle)
返回 ResultVoid
确认 void 函数已运行。
getState () 获取为ampler 的状态。
虚拟结果amplerState nlc::SamplerInterface::getState(const DeviceHandle deviceHandle)
返回结果amp勒尔州
提供amp勒州。
start () 开始于amp勒。
虚拟 ResultVoid nlc::SamplerInterface::start (const DeviceHandle deviceHandle, SamplerNotify* samplerNotify,int64_t应用程序数据)
参数 [输入] deviceHandle [输入] SamplerNotify [输入] applicationData
返回 ResultVoid
指定从哪个设备启动amp勒为。
指定要报告的可选信息(可以为 nullptr)。
选项:将应用程序相关数据(用户定义的 8 位值数组/设备 ID/索引,或日期时间、变量/函数的指针等)转发到amplerNotify。
确认 void 函数已运行。
版本:doc 1.4.2 / NanoLib 1.3.0
55
8 类/函数参考
stop () 停止为amp勒。
虚拟 ResultVoid nlc::SamplerInterface::stop (const DeviceHandle 设备句柄)
参数 [in] deviceHandle 返回 ResultVoid
指定停止哪个设备ampler for。确认 void 函数已运行。
8.35秒amplerConfiguration 结构
该结构包含数据ampler 的配置选项(静态或非静态)。
公共属性
std::vector追踪地址
最多可设置 12 个 OD 地址amp引领。
uint32_t
版本
一个结构的版本。
uint32_t
持续时间毫秒
Sampling 持续时间(以毫秒为单位),从 1 到 65535
uint16_t
period毫秒
Samp在 ms 中的 ling 周期
uint16_t
数量amp莱斯
Samp较少数额。
uint16_t
预触发次数amp莱斯
Samp预触发金额。
布尔值
使用软件实现
采用软件实现。
布尔值
使用NewFWSamplerImplementation 使用具有以下设备的 FW 实现:
FW 版本 v24xx 或更新版本。
Samp勒莫德
模式
正常、重复或连续amp玲。
SamplerTriggerCondition triggerCondition
启动触发条件:TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C,OdIndex,triggerValue
Samp触发条件
Samp触发条件
触发条件amp勒?
静态公共属性
静态 constexpr size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 静态 constexpr size_t MAX_TRACKED_ADDRESSES = 12
8.36秒amp通知
使用此类激活amp启动时收到通知ampler。该类具有以下公共成员函数。
版本:doc 1.4.2 / NanoLib 1.3.0
56
8 类/函数参考
通知 ()
传送通知条目。
虚拟 void nlc::SamplerNotify::notify (const ResultVoid & lastError,const Samp勒尔州amplerState,const std::vector<Samp数据>&sampleDatas,int64_t 应用程序数据)
参数 [in] lastError [in] samp勒尔州
[英寸]ampleDatas [输入] applicationData
报告上次发生错误时ampling。报告称amp通知时的状态:未配置 / 已配置 / 就绪 / 正在运行 / 已完成 / 失败 / 已取消。报告ampled-data 数组。报告特定于应用程序的数据。
8.37秒amp数据结构
该结构包含amp领导数据。
uin64_t 迭代次数
从 0 开始并且仅在重复模式下增加。
std::vector<SampledValues> 包含数组amp领导价值观。
8.38秒ampledValue 结构
该结构包含amp领导价值观。
in64_t 值 uin64_t CollectTimeMsec
包含跟踪的 OD 地址的值。
包含相对于 s 的收集时间(以毫秒为单位)amp开始。
8.39秒amplerTrigger 结构
此结构包含 s 的触发设置amp勒。
SamplerTriggerCondition 条件
OdIndex uin32_t 值
触发条件:TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C
触发器的 OdIndex(地址)。
条件值或位数(从位零开始)。
8.40 串行结构
在这里找到您的串行通信选项和以下公共属性:
const std::string const SerialBaudRate
BAUD_RATE_OPTIONS_NAME = “串行波特率” baudRate =SerialBaudRate 结构
版本:doc 1.4.2 / NanoLib 1.3.0
57
8 类/函数参考
const std::string const SerialParity
PARITY_OPTIONS_NAME = “串行奇偶校验” 奇偶校验 = SerialParity 结构
8.41 SerialBaudRate 结构
在这里找到您的串行通信波特率和以下公共属性:
const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string
BAUD_RATE_7200 = “7200” BAUD_RATE_9600 = “9600” BAUD_RATE_14400 = “14400” BAUD_RATE_19200 = “19200” BAUD_RATE_38400 = “38400” BAUD_RATE_56000 = “56000” BAUD_RATE_57600 = “57600” BAUD_RATE_115200 = “115200” BAUD_RATE_128000 = “128000” BAUD_RATE_256000 = “256000”
8.42 SerialParity 结构
在这里找到您的串行奇偶校验选项和以下公共属性:
const std::string const std::string const std::string const std::string const std::string
NONE = “无” ODD = “奇数” EVEN = “偶数” MARK = “标记” SPACE = “空格”
版本:doc 1.4.2 / NanoLib 1.3.0
58
9许可证
9许可证
NanoLib API 接口头文件和示例ample 源代码由 Nanotec Electronic GmbH & Co. KG 根据 Creative Commons Attribution 3.0 Unported License (CC BY) 授权。以二进制格式提供的库部分(核心和现场总线通信库)根据 Creative Commons AttributionNoDerivatives 4.0 International License (CC BY ND) 授权。
知识共享
以下易于阅读的摘要不会取代许可证本身。您可以在 creativecommons.org 和下面的链接中找到相应的许可证。您可以自由地:
CC BY 3.0
分享:见右图。改编:重新混合、转换并在此基础上构建
材料用于任何目的,甚至商业目的。
CC BY-ND 4.0
共享:以任何媒介或格式复制并重新分发材料。
只要您遵守以下许可条款,许可方就不能撤销上述自由:
CC BY 3.0
CC BY-ND 4.0
署名:您必须给予适当的署名,署名:见左图。但:提供指向此链接
提供许可证链接,并说明是否
其他許可。
已进行更改。您可以随时进行更改。
禁止衍生产品:如果你重新混合、转换或构建
合理的方式,但不得以任何方式暗示
你不能分发材料
表示许可方认可您或您的使用。
改性材料。
无附加限制:您不得申请无附加限制:见左图。法律条款或技术措施,这些措施在法律上是
限制他人做任何事的许可证
许可证。
注意:您不必遵守公共领域材料元素的许可证,或者适用的例外或限制允许您的使用。
注意:不提供任何保证。许可证可能不会授予您预期用途所需的所有权限。例如amp但是,其他权利(如公开权利、隐私权利或道德权利)可能会限制您使用材料的方式。
版本:doc 1.4.2 / NanoLib 1.3.0
59
版本说明、联系方式
©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 Feldkirchen德国电话+49(0) 89 900 686-0传真+49(0)89 900 686-50 info@nanotec.dewww.nanotec.com 保留所有权利。错误、遗漏、技术或内容变更可能不另行通知。引用的品牌/产品是其所有者的商标,应按其所有者的商标处理。原始版本。
文档 1.4.2 2024.12 1.4.1 2024.10 1.4.0 2024.09 1.3.3 2024.07
1.3.2 2024.05 1.3.1 2024.04 1.3.0 2024.02
1.2.2 2022.09 1.2.1 2022.08 1.2.0 2022.08
+ 添加 > 更改 # 修复 > 重新制作所提供的 examp莱斯。
+ NanoLib Modbus:为 Modbus VCP 添加了设备锁定机制。# NanoLib Core:修复了连接状态检查。# NanoLib Code:更正了总线硬件参考删除。
+ NanoLib-CANopen:支持 Peak PCAN-USB 适配器(IPEH-002021/002022)。
> NanoLib Core:更改了日志记录回调接口(LogLevel 被 LogModule 取代)。# NanoLib Logger:核心和模块之间的分离已得到纠正。# Modbus TCP:修复了 FW4 的固件更新。# EtherCAT:修复了 Core5 的 NanoJ 程序上传。# EtherCAT:修复了 Core5 的固件更新。
# Modbus RTU:修复固件更新期间低波特率的计时问题。# RESTful:修复 NanoJ 程序上传。
# NanoLib 模块 Sampler:正确阅读sampled 布尔值。
+ 所有平台均支持 Java 11。 + 所有平台均支持 Python 3.11/3.12。 + 新的日志回调接口(参见示例amples)。+ NanoLib Logger 的回调接收器。> 将记录器更新至版本 1.12.0。> NanoLib 模块 Sampler:现在支持 Nanotec 控制器固件 v24xx。> NanoLib 模块 Sampler:用于 s 的结构变化ampler 配置。 > NanoLib 模块 Sampler:连续模式与无尽模式同义;触发条件检查一次;amples 必须为 0。> NanoLib 模块 Sampler:固件模式下收集数据的线程的正常优先级。 > NanoLib 模块 Sampler:重写算法以检测就绪状态与运行状态之间的转换。#NanoLib Core:使用相同总线硬件关闭 0 个或更多设备时不再发生访问冲突 (0000005xC2)。#NanoLib Core:在 Linux 下连接 PEAK 适配器时不再发生分段错误。#NanoLib Modules Sampler:正确amp固件模式下的 led 值读取。# NanoLib 模块 Sampler:502X:04 的正确配置。# NanoLib 模块 Sampler:正确混合缓冲区和通道。#NanoLib-Canopen:增加 CAN 超时以提高稳健性并在较低波特率下正确扫描。#NanoLib-Modbus:特殊设备(USB-DA-IO)的 VCP 检测算法。
+ EtherCAT 支持。
+ 注意在配置项目中的 VS 项目设置。
+ 获取设备硬件组 (). + 获取ProfinetDCP (isServiceAvailable). + 获取ProfinetDCP (validateProfinetDeviceIp). + 自动分配对象词典 (). + 获取XmlFile名称()。+ const std::string & xmlFileaddObjectDictionary() 中的路径.+getSampler接口()。
产品 1.3.0 1.2.1 1.2.0 1.1.3
1.1.2 1.1.1 1.1.0
1.0.1 (B349) 1.0.0 (B344) 1.0.0 (B341)
版本:doc 1.4.2 / NanoLib 1.3.0
60
10 版本说明、联系方式、版本
文档
1.1.2 2022.03 1.1.1 2021.11 1.1.0 2021.06 1.0.1 2021.06 1.0.0 2021.05
+ 添加 > 更改 # 已修复 + rebootDevice ()。+ getDeviceBootloaderVersion ()、~VendorId ()、~HardwareVersion ()、~SerialNumber 和 ~Uid 的错误代码 ResourceUnavailable。> firmwareUploadFromFile 现在上传固件来自File ()。> firmwareUpload()现在 uploadFirmware()。> bootloaderUploadFromFile ()现在上传Bootloader来自File ()。> bootloaderUpload()现在 uploadBootloader()。> bootloaderFirmwareUploadFromFile ()上传Bootloader固件来自File ()。> bootloaderFirmwareUpload()现在uploadBootloaderFirmware()。> nanojUploadFromFile ()现在上传NanoJFromFile ()。> nanojUpload () 现在是 uploadNanoJ ()。> objectDictionaryLibrary () 现在是 getObjectDictionaryLibrary ()。> String_String_Map 现在是 StringStringMap。> NanoLib-Common:使用 Ixxat 适配器时,可以更快地执行 listAvailableBusHardware 和 openBusHardwareWithProtocol。> NanoLib-CANopen:如果总线硬件选项为空,则使用默认设置(1000k 波特率、Ixxat 总线编号 0)。> NanoLib-RESTful:如果 npcap / winpcap 驱动程序可用,则在 Windows 下与以太网引导加载程序通信的管理员权限已过时。# NanoLib-CANopen:总线硬件现在可以使用空选项无崩溃地打开。# NanoLib-Common:openBusHardwareWithProtocol () 现在没有内存泄漏。
+ Linux ARM64 支持。 + USB 大容量存储/REST/Profinet DCP 支持。 + checkConnectionState()。 + getDeviceBootloaderVersion()。 + ResultProfinetDevices。 + NlcErrorCode(已替换 NanotecExceptions)。 + NanoLib Modbus:VCP/USB 集线器统一到 USB。 > Modbus TCP 扫描返回结果。 < Modbus TCP 通信延迟保持不变。
+ 更多 ObjectEntryDataType(复杂且专业file-specific)。+ 如果 connectDevice () 和 scanDevices () 未找到任何内容,则返回 IOError。+ CanOpen / Modbus 的标称超时仅为 100 毫秒。
+ Modbus 支持(加上通过 VCP 的 USB 集线器)。+ 章节创建您自己的 Linux 项目。+ extraHardwareSpecifier 到 BusHardwareId()。+ extraId_ 和 extraStringId_ 到 DeviceId()。
+ setBusState ()。+ getDeviceBootloaderBuildId ()。+ getDeviceFirmwareBuildId ()。+ getDeviceHardwareVersion ()。# 错误修复。
版。
产品
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1
版本:doc 1.4.2 / NanoLib 1.3.0
61
文件/资源
![]() |
Nanotic NanoLib C++ 编程 [pdf] 用户手册 NanoLib C 编程,C 编程,编程 |