外观
【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 分类网络部署库,由