Skip to main content

SDK总览

一、 C++ API规范​

  1. 所有的C++ API函数,都在mpl命名空间中声明。在调用时,需要写明。例如,调用ShowMessage函数时,应该使用以下的写法:

    mpl::ShowMessage(tr("Hello World!"));
  2. 对于mpl命名空间中的全局函数,使用大写字母开头的写法。

  3. 对于类型为QString的参数,当该参数的作用是提供qml文件的url时,不需要翻译此字符串,因此也不需要使用QObject::tr进行转换;当用于需要显示的文本时,例如text或者msg,一般情况下需要进行翻译,因此需要使用QObject::tr进行转换。

二、ProcessCraft界面操作​

有以下ProcessCraft界面操作的接口:

QQmlContext* GetRootContext();

void AddToolGroup(QString text, QString url);

void AddActivityControl(QString text, QString icon, QString url);

void AddPanel(QString text, QString url);

void AddStatusControl(QString url);

void ShowMessage(QString msg);

std::vector<unsigned> GetSelectedIdList();

GetRootContext​

用于获取当前QML引擎的根上下文环境。

AddToolGroup​

用于在顶部栏中添加一组图标工具。

AddActivityControl​

用于向活动工具栏添加一个图标按钮,以及对应的左侧边栏面板。

AddPanel​

用于添加一个底侧边栏面板。

AddStatusControl​

用于添加一块状态栏显示区域。

ShowMessage​

用于弹出一个信息提示对话框。

GetSelectedIdList​

用于获取当前选中的对象。返回一个列表,列表中的每一项都是一个选中的对象的id。

三、信号代理及信号​

请参考ProcessCraft信号代理介绍获取信号代理的使用方法和查询所有的信号的列表。此处仅做示例:

// 获取信号代理对象
mpl::SignalProxy* proxy = mpl::SignalProxy::Get();
// 连接信号
QObject::connect(proxy, &mpl::SignalProxy::pointCloudSelected,
this, &MyClass::onPointcloudSelected);

四、任务​

任务数据中包含了常见的工序、路径、工具数据、工件数据、速度数据、点云数据等等。

unsigned CreateGenericOperation(unsigned taskId, QString name, unsigned parentId = 0);

void CreateInstructions(const std::vector<Pose>& poses, unsigned operationId, unsigned speeddataId, unsigned zonedataId, unsigned wobjdataId, unsigned tooldataId);

std::vector<IdName> GetTaskList();

std::vector<IdName> GetTooldataList(unsigned taskId);

std::vector<IdName> GetSpeeddataList(unsigned taskId);

std::vector<IdName> GetZonedataList(unsigned taskId);

std::vector<IdName> GetWObjdataList(unsigned taskId);

std::vector<Pos> GetCloudPoints(unsigned id);

void DeleteCloudPoints(unsigned pointcloud, const std::vector<size_t>& points);

void DeletePointClouds(const std::vector<unsigned>& pcs);

void DeleteSelectedCloudPoints(const std::vector<unsigned>& pcs = std::vector<unsigned>{});

void DeleteSelectedPointClouds();

4.1 创建任务数据​

CreateGenericOperation​

用于创建一个普通工序。

CreateInstructions​

基于给定的位姿序列和相关参数创建机器人运动指令。

4.2 获取任务数据​

GetTaskList​

用于获取全部任务的id和name的列表。

GetTooldataList/GetSpeeddataList/GetZonedataList/GetWObjdataList​

用于获取全部的工具数据、速度数据、Zone数据、工件数据的列表。

GetCloudPoints​

获取一个点云对象中的所有点的坐标。

4.3 删除任务数据​

DeleteCloudPoints​

用于删除一个点云中的一组点。

DeletePointClouds​

用于删除一个或者多个点云对象。

DeleteSelectedCloudPoints​

用于删除多个或者全部点云对象中的选中的点。

DeleteSelectedPointClouds​

用于删除所有的选中的点云对象。

五、基本数据结构​

class Pos;

class Orient;

class Pose;

Pos​

用于表示三维空间中的一个点的坐标。

Orient​

用于表示三维空间中的旋转方向。

Pose​

用于表示三维空间中包含了位置信息和方向信息的空间位姿。