外观
【01】主要模块
约 552 字大约 2 分钟
RMVL 的主要模块包括数据结构与算法、硬件设备二次开发库、数值计算库、工业互联网 OPC UA 通信协议等内容,这些内容作为主要模块分布在项目的 modules 文件夹中。
工具类
包含
- 通用工具,包含在
<rmvl/core/util.hpp>中- 聚合体反射工具:主要集成在
rm::reflect命名空间中
- 聚合体反射工具:主要集成在
- 通信支持
- 串口通信支持:由
rm::SerialPort类提供,包含在<rmvl/core/io.hpp>中 OPC UA支持:由rm::Server、rm::Client类提供 C/S 通信支持,由rm::NodeId类提供节点管理、rm::Variable类提供变量管理、rm::DataType类提供数据类型管理、rm::Method类提供方法管理、rm::Object类提供对象管理……,包含在<rmvl/opcua.hpp>中
- 串口通信支持:由
- 硬件设备支持库
- 相机设备支持:由
rm::MvCamera、rm::HikCamera等类提供,包含在<rmvl/camera.hpp>中 - 光源设备支持:由
rm::OPTLightController等类提供,包含在<rmvl/light.hpp>中
- 相机设备支持:由
算法类
包含
- 数值计算,包含在
<rmvl/algorithm/numcal.hpp>中- 函数插值方法:由
rm::Interpolator类所实现 - 最小二乘法 和 非线性最小二乘,由
rm::lsqnonlin和rm::lsqnonlinRKF函数所实现 - 非线性方程(组)数值解与迭代法,由
rm::NonlinearSolver类所实现 - 常微分方程(组)数值解与 Runge-Kutta 算法,由
rm::RungeKutta等相关继承类所实现 - 自动求导、数值微分,由
rm::derivative和rm::grad函数所实现 - 一维最优化方法,由
rm::fminbnd函数所实现 - 多维无约束最优化方法,由
rm::fminunc函数所实现
- 函数插值方法:由
- 数据与信号处理
- 基于 TOPSIS 模型的熵权法,由
rm::EwTopsis类所实现,包含在<rmvl/algorithm/math.hpp>中 - 卡尔曼滤波 和 扩展卡尔曼滤波,由
rm::KalmanFilter和rm::ExtendedKalmanFilter类所实现,包含在<rmvl/algorithm/kalman.hpp>中 - 离散傅里叶变换 和 快速傅里叶变换,由
rm::dft和rm::idft函数所实现,包含在<rmvl/algorithm/dsp.hpp>中
- 基于 TOPSIS 模型的熵权法,由
- 数据结构与算法,包含在
<rmvl/algorithm/datastruct.hpp>中- 并查集,由
rm::UnionFind类模板所实现 - 支持随机访问的堆,由
rm::RaHeap类模板所实现
- 并查集,由
- 机器学习与深度学习支持库,包含在
<rmvl/ml.hpp>中- ONNX-Runtime 分类网络部署库,由
rm::OnnxNet及其派生类所实现
- ONNX-Runtime 分类网络部署库,由