| | |
| | | #include <map> |
| | | #include "pugixml.hpp" |
| | | |
| | | struct ValueRange { |
| | | double minValue; // 最小值 |
| | | double maxValue; // 最大值 |
| | | double currentValue; // 当前值 |
| | | |
| | | // 构造函数初始化 |
| | | ValueRange(double minVal = 0.0, double maxVal = 0.0, double curVal = 0.0) |
| | | : minValue(minVal), maxValue(maxVal), currentValue(curVal) {} |
| | | }; |
| | | |
| | | struct PositionRange { |
| | | std::string description; // 定位点描述 |
| | | ValueRange range; // 位置的最小值、最大值和当前值 |
| | | |
| | | // 构造函数初始化 |
| | | PositionRange(const std::string& desc = "", const ValueRange& r = ValueRange()) |
| | | : description(desc), range(r) {} |
| | | }; |
| | | |
| | | // 轴信息结构体 |
| | | struct AxisInfo { |
| | | int id; // 轴ID |
| | | std::string number; // 轴编号 |
| | | std::string number; // 轴编号 |
| | | std::string description; // 轴描述 |
| | | std::string startAddress; // 起始地址 |
| | | double jogDistance; // 微动量 |
| | | double manualSpeed; // 手动速度 |
| | | double autoSpeed; // 自动速度 |
| | | double accelerationTime; // 加速时间 |
| | | double decelerationTime; // 减速时间 |
| | | std::vector<std::pair<std::string, double>> positions; // 定位点:描述和位置 |
| | | ValueRange jogDistance; // 微动量(最小值、最大值、当前值) |
| | | ValueRange manualSpeed; // 手动速度(最小值、最大值、当前值) |
| | | ValueRange autoSpeed; // 自动速度(最小值、最大值、当前值) |
| | | ValueRange accelerationTime; // 加速时间(最小值、最大值、当前值) |
| | | ValueRange decelerationTime; // 减速时间(最小值、最大值、当前值) |
| | | std::vector<PositionRange> positions; // 定位点:描述、位置及最小最大值 |
| | | }; |
| | | |
| | | // 配方管理类 |
| | |
| | | std::vector<int> getAllAxisID() const; |
| | | |
| | | // 获取指定页的定位点 |
| | | std::vector<std::pair<std::string, double>> getPositions(int axisId, int pageNumber, int pageSize) const; |
| | | std::vector<PositionRange> getPositions(int axisId, int pageNumber, int pageSize) const; |
| | | |
| | | // 获取指定页的定位点 |
| | | PositionRange getPositionByIndex(int axisId, int pageNumber, int pageSize, int currentIndex) const; |
| | | |
| | | private: |
| | | RecipeManager(); |