沿路径绝对移动
使光标沿着指定的路径移动到指定位置。
语法
cpp
class RX784::Device {
Status movePathAbs(
int16_t x,
int16_t y,
uint32_t duration,
uint32_t pollingRate = 250,
bool isIgnoreErrors = false,
const Path& path,
std::function<void()> callback = []{}
);
};
class RX784::Device {
Status movePathAbs(
int16_t x,
int16_t y,
uint32_t duration,
uint32_t pollingRate = 250,
bool isIgnoreErrors = false,
const Path& path,
std::function<void()> callback = []{}
);
};
e
类名 基类 公开 备注 RX784设备 ✔
方法名 返回值类型 公开 备注 沿路径绝对移动 整数型 ✔ 参数名 类型 参考 可空 数组 备注 x 短整数型 y 短整数型 持续时间 整数型 路径 路径 轮询率 整数型 ✔ 是否忽略错误 逻辑型 ✔ 回调 子程序指针 ✔
.版本 2
.程序集 RX784设备, , 公开
.子程序 沿路径绝对移动, 整数型, 公开
.参数 x, 短整数型
.参数 y, 短整数型
.参数 持续时间, 整数型
.参数 路径, 路径
.参数 轮询率, 整数型, 可空
.参数 是否忽略错误, 逻辑型, 可空
.参数 回调, 子程序指针, 可空
py
参数
返回值
名称 | 英文 | 说明 |
---|---|---|
状态码 | status | 成功返回 。 |
类型
线性路径
通过方程
cpp
namespace RX784 {
struct LinearPath {
double a1;
double b1;
double a2;
double b2;
double p1x;
double p1y;
double p2x;
double p2y;
};
}
namespace RX784 {
struct LinearPath {
double a1;
double b1;
double a2;
double b2;
double p1x;
double p1y;
double p2x;
double p2y;
};
}
e
方法名 返回值类型 公开 备注 线性路径 路径 ✔ 参数名 类型 参考 可空 数组 备注 a1 双精度小数型 b1 双精度小数型 a2 双精度小数型 b2 双精度小数型 p1x 双精度小数型 p1y 双精度小数型 p2x 双精度小数型 p2y 双精度小数型
.版本 2
.子程序 线性路径, 路径, 公开
.参数 a1, 双精度小数型
.参数 b1, 双精度小数型
.参数 a2, 双精度小数型
.参数 b2, 双精度小数型
.参数 p1x, 双精度小数型
.参数 p1y, 双精度小数型
.参数 p2x, 双精度小数型
.参数 p2y, 双精度小数型
py
备注
使用前必须先 初始化绝对坐标系统。
示例
cpp
#include "rx784.hpp"
#include "rx784ext.h"
int main() {
RX784::Device device;
device.open("COM1");
device.initAbsSystem(1920, 1080);
// 移动到 (500, 100),耗时 1 秒
device.movePathAbs(500, 100, 1000,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 });
// 轮询率设为 125Hz,即 1 秒移动 125 步
device.movePathAbs(500, 100, 1000, 125u,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 });
// 忽略执行过程中的错误
device.movePathAbs(500, 100, 1000, false,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 });
// 轮询率设为 125Hz,忽略错误
device.movePathAbs(500, 100, 1000, 125, false,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 });
// 设置回调,每移动一小步打印一次 hello
// 回调可以用 lambda 表达式,也可以用函数指针
device.movePathAbs(500, 100, 1000,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 },
[]{
std::cout << "hello" << std::endl;
});
device.close();
}
#include "rx784.hpp"
#include "rx784ext.h"
int main() {
RX784::Device device;
device.open("COM1");
device.initAbsSystem(1920, 1080);
// 移动到 (500, 100),耗时 1 秒
device.movePathAbs(500, 100, 1000,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 });
// 轮询率设为 125Hz,即 1 秒移动 125 步
device.movePathAbs(500, 100, 1000, 125u,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 });
// 忽略执行过程中的错误
device.movePathAbs(500, 100, 1000, false,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 });
// 轮询率设为 125Hz,忽略错误
device.movePathAbs(500, 100, 1000, 125, false,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 });
// 设置回调,每移动一小步打印一次 hello
// 回调可以用 lambda 表达式,也可以用函数指针
device.movePathAbs(500, 100, 1000,
RX784::LinearPath{ 0.5, 0.5, 0.9, 0.1,
0.5, 0.2, 0.8, 0.7 },
[]{
std::cout << "hello" << std::endl;
});
device.close();
}
e
方法名 返回值类型 公开 备注 _启动子程序 整数型
变量名 类型 静态 数组 备注 设备 RX784设备
设备.打开 (“COM1”)设备.初始化绝对坐标系统 (1920, 1080)设备.沿路径绝对移动 (100, 100, 1000, 线性路径 (0.5, 0.5, 0.9, 0.1, 0.5, 0.2, 0.8, 0.7))设备.关闭 ()返回 (0).版本 2
.子程序 _启动子程序, 整数型
.局部变量 设备, RX784设备
设备.打开 (“COM1”)
设备.初始化绝对坐标系统 (1920, 1080)
设备.沿路径绝对移动 (100, 100, 1000, 线性路径 (0.5, 0.5, 0.9, 0.1, 0.5, 0.2, 0.8, 0.7))
设备.关闭 ()
返回 (0)
py
import rx784
import rx784