跳到主要内容

接口说明

UI接口

/*
* 描述:注册可以显示在HMI界面中的中心界面,由菜单栏控制。
* 参数1 pluginName:插件名
* 参数2 widget:用户自定义的界面
* 返回值 int:注册结果 0 成功 -1 插件名错误 -2 插件初始化错误
*/
int CreateCenterWidget(const QString &pluginName, QWidget *widget);
/*
* 描述:注册可以显示在HMI界面中的显示的底部状态栏
* 参数1 pluginName:插件名
* 参数2 widget:用户自定义的底部状态栏
* 参数3 index:插入索引
* 返回值 int:注册结果 0 成功 -1 插件名错误 -2 插件初始化错误
*/
int CreateStatusBar(const QString &pluginName, QWidget *widget, int index = -1);
/*
* 描述:在界面右下角弹出窗口提示一些日志文本
* 参数1 pluginName:插件名
* 参数2 level:弹出窗口级别
* 参数3 msg:文本
* 返回值 int:提示结果 0 成功 -1 插件名错误 -2 插件初始化错误
*/
int ThrowLog(const QString &pluginName, enThrowLogLevel level, const QString &msg);
/*
* 描述:创建物理按键
* 参数1 pluginName:插件名
* 参数2 type:物理按键类型
* 参数3 left_buttons:左侧物理按键列表
* 参数4 right_buttons:右侧物理按键列表
* 参数5 center_texts:中心显示文本
* 返回值 int:创建成功 0 成功 -1 插件名错误 -2 插件初始化错误
*/
int XPLUGIN_EXPORT CreatePhyButtonList(const QString &pluginName, const QString& type, const QList<PhysicalButton>& left_buttons, const QList<PhysicalButton>& right_buttons, QStringList center_texts = QStringList(""));
/*
* 描述:启用/关闭物理按键
* 参数1 pluginName:插件名
* 参数2 type:物理按键类型
* 参数3 enable:物理按键启用状态
* 返回值 int:改变状态 0 成功 -1 插件名错误 -2 插件初始化错误
*/
int ChangePhyButtonStatus(const QString &pluginName, const QString& type, bool enable);
/*
* 描述:注册语言包
* 参数1 pluginName:插件名
* 参数2 type:语言包类型
* 参数3 qmPath:语言包路径
* 返回值 int:注册结果 0 成功 -1 插件名错误 -2 插件初始化错误
*/
int RegistLanguage(const QString &pluginName, enLanguage type, const QString &qmPath);

辅助编程接口

/*
* 描述:创建一个指令类型,根据创建的指令类型可以添加指令动作,必须优先创建。必填
* 参数1 type:指令类型
*/
void createTypeKey(const QString &type);
/*
* 描述:创建一个指令组,必填
* 参数1 lab:指令组在界面显示的内容
* 参数2 groupName:指令组名称
*/
void createGroups(const QString &lab, const QString &groupName);
/*
* 描述:将创建的指令插入指令组中,必填
* 参数1 groupName:指令组
* 参数2 type:指令类型
*/
void createTypeToGroup(const QString &groupName, const QString &type);

/*
* 描述:将创建的指令插入指令组中,必填
* 参数1 groupName:指令组
* 参数2 typeList:指令类型
*/
void createTypeToGroup(const QString &groupName, const QStringList &typeList);
/*
* 描述:给指令添加解析器匹配字符串,用于回显界面数据,选填
* 参数1 type:指令类型
* 参数2 str:解释器字符串
*/
void createSkeleton(const QString &type, const QString &str);
/*
* 描述:无界面或无参数输入时自定义默认插入的指令语句,选填
* 参数1 type:指令类型
* 参数2 strDef:默认指令语句
*/
void createInsDefault(const QString &type, const QString &strDef);

/*
* 描述:参与正则匹配指令字符串,做指令反解,选填
* 参数1 type:指令类型
* 参数2 str:字符串
*/
void createPattern (const QString &type, const QString &str);
/*
* 描述:指令介绍文本,选填
* 参数1 type:指令类型
* 参数2 str:介绍文本
*/
void createInsDescribe(const QString &type, const QString &str);
/*
* 描述:创建一个自定义窗体,用作指令插入的界面,选填
* 参数1 type:指令类型
* 参数2 func:创建函数,返回一个RLContentBase类的子类
*/
void createInsertWidget(const QString &type, std::function<RLContentBase* ()> func = []{return nullptr;});
/*
* 描述:创建一个自定义窗体,用作指令解析属性的界面,选填
* 参数1 type:指令类型
* 参数2 func:创建函数,返回一个RLContentBase类的子类
*/
void createPropertyWidget(const QString &type, std::function<RLContentBase* ()> func = []{return nullptr;});

通信接口

/*
* 描述:与控制器插件数据通信接口(获取自定义的数据key值)
* 参数1 obj:执行控制的主体QObject
* 参数2 pluginName:控制器插件名称
* 参数3 key:控制器插件数据
* 返回值 QJsonArray:控制器插件的数据结体
*/
QJsonArray commandCustomData(QObject *obj, const QString &pluginName, const QString &key);

/*
* 描述:与控制器插件数据通信接口(设置自定义的数据key值)
* 参数1 obj:执行控制的主体QObject
* 参数2 pluginName:控制器插件名称
* 参数3 key:控制器插件数据key
* 参数4 val:控制器插件数据key的目标值
* 返回值 QJsonArray:控制器插件的数据结体
*/
QJsonArray commandCustomData(QObject *obj, const QString &pluginName, const QString &key, const QString &val);

/*
* 描述:与控制器插件数据通信接口(自定义数据结构)
* 参数1 obj:执行控制的主体QObject
* 参数2 pluginName:插件名
* 参数3 json:自定义数据结构
* 返回值 QJsonArray:控制器插件的数据结体
*/
QJsonArray commandCustomData(QObject *obj, const QString &pluginName, const QJsonObject& json);

/*
* 描述:与控制器插件数据通信接口(自定义数据结构)
* 参数1 obj:执行控制的主体QObject
* 参数2 json:自定义数据结构(带插件名)
* 返回值 QJsonArray:控制器插件的数据结体
*/
QJsonArray commandCustomData(QObject *obj, const QJsonObject& json);

/*
* 描述:与控制器插件数据通信接口(自定义数据结构)
* 参数1 obj:执行控制的主体QObject
* 参数2 arr:由自定义数据结构组成的Json数组
* 返回值 QJsonArray:控制器插件的数据结体
*/
QJsonArray commandCustomData(QObject *obj, const QJsonArray& arr);

数据接口

/*
* 描述:通用节点数据获取接口
* key:节点全名
* 返回值 QJsonValue:节点数据
*/
QJsonValue getNodeData(const QString &key);
/*
* 描述:获取robot网络连接状态
* 返回值 bool:true 已连接 false 未连接
*/
bool getRobotConnected();
/*
* 描述:获取当前用户权限级别
* 返回值 int:级别 1~5
*/
int getUserOperateLevel();
/*
* 描述:获取机器人ID
* 返回值 QString:机器人ID
*/
QString getRobotID();
/*
* 描述:获取机器人状态
* 返回值 QString:机器人状态
*/
QString getRobotPhyStatus();
/*
* 描述:获取当前工具
* 返回值 QString:工具名
*/
QString getCurTool();
/*
* 描述:获取当前工件
* 返回值 QString:工件名
*/
QString getCurWobj();
/*
* 描述:获取工具列表
* 返回值 QStringList:工具列表
*/
QStringList getToolList();
/*
* 描述:获取工件列表
* 返回值 QStringList:工件列表
*/
QStringList getWobjList();
/*
* 描述:获取速度列表
* 返回值 QStringList:速度列表
*/
QStringList getSpeedList();
/*
* 描述:获取转弯区列表
* 返回值 QStringList:转弯区列表
*/
QStringList getZoneList();
/*
* 描述:根据变量类型获取变量名称列表
* 参数1 type:变量类型
* 返回值 QStringList:变量名称列表
*/
QStringList getVarDataList(const QString &type = "");
/*
* 描述:由变量名和值创建基本变量
* 参数1 name:变量名
* 参数2 value:变量值
* 返回值 bool:创建结果
*/
bool addVarData(const QString &name, QVariant value);
/*
* 描述:由变量名删除基本变量
* 参数1 name:变量名
* 返回值 bool:删除结果
*/
bool delVarData(const QString &name);
/*
* 描述:由变量名和值更新基本变量
* 参数1 name:变量名
* 参数2 value:变量值
* 返回值 bool:更新结果
*/
bool updateVarData(const QString &name, QVariant value);
/*
* 描述:获取变量的结构体值
* 参数1 name:变量名
* 返回值 QJsonObject:变量的结构体值
*/
QJsonObject getVarObjDataByName(const QString &name);
/*
* 描述:获取点位名称列表
* 返回值 QStringList:点位名称列表
*/
QStringList getPointNameList();
 /*
* 描述:获取点位全体结构数据
* 参数1 pointName:点位名称
* 返回值 QJsonObject:点位全体结构数据
*/
QJsonObject getPointObjDataByName(const QString &pointName);
/*
* 描述:获取点位数据
* 参数1 pointName:点位名称
* 返回值 QVector<double>:点位数据
*/
QVector<double> getPointDataByName(const QString &pointName);
/*
* 描述: 由当前点新建笛卡尔点位变量
* 参数1 pointName:点位名称
* 参数2 toolName:工具名称
* 参数3 wobjName:工件名称
* 返回值 bool:新建结果
*/
bool addCurrentCartPoint(const QString& pointName, const QString& toolName, const QString& wobjName);
/*
* 描述: 修改笛卡尔点位值
* 参数1 pointName:点位名称
* 参数2 xyz_abc:点位值
*/
void changeCartPoint(const QString& name, const QVector<double>& xyz_abc);
/*
* 描述: 点位可达性校验
* 参数1 pointFrom:起始点
* 参数2 pointTo:目标点
* 返回值 int 错误码 0 成功 1 点位相同 -2 奇异点
*/
int checkPointMoveTo(const QString & pointFrom, const QString &pointTo);
/*
* 描述: 点位一致校验
* 参数1 pointFrom:起始点
* 参数2 pointTo:目标点
* 返回值 int 错误码 0 成功 1 点位相同 -2 奇异点
*/
int checkPointSame (const QString & pointFrom, const QString &pointTo);
/*
* 描述: 点位运动至开启
* 参数1 errCode:错误码 -1 未找到目标点位
* 参数2 pointNameTo:目标点
* 参数3 speed:速度(1~100)
* 参数4 isMoveJ:是否以MoveJ移动
*/
void moveToStart(int &errCode, const QString &pointNameTo, int speed, bool isMoveJ);

/*
* 描述: 点位运动至开启
* 参数1 errCode:错误码 -1 未找到目标点位
* 参数2 pointNameTo:目标点
* 参数3 speed:速度 (1~100)
* 参数4 confCheck:是否开启配置检查
* 参数5 isMoveJ:是否以MoveJ移动
*/
void moveToStart(int &errCode, const QString &pointNameTo, int speed, bool confCheck, bool isMoveJ);
/*
* 描述: 点位运动至停止
*/
void moveToStop();
/*
* 描述: 获取IO名称列表以及值
* 返回值 QHash<QString, bool>:IO名称列表以及值
*/
QHash<QString, bool> getIOHash();
/*
* 描述: 获取所有的寄存器名称列表以及值
* 返回值 QHash<QString, QStringList>:寄存器名称列表以及值
*/
QHash<QString, QStringList> getRegisterHash();
/*
* 描述: 新建工程
* 参数1 projectName:工程名
* 参数2 desc:工程描述
* 参数3 isUsed:是否切换工程
* 返回值 int:新建结果 0 成功 -1 工程名错误
*/
int createProject(const QString& projectName, const QString &desc = "", bool isUsed = false);
/*
* 描述:查询工程列表
* 返回值 QStringList:工程列表
*/
QStringList getProjectList();
/*
* 描述: 切换工程
* 参数1 projectName:工程名
* 返回值 int:切换结果 0 成功 -1 工程名错误
*/
int changeProject(const QString& projectName);
 /*
* 描述: 删除工程
* 参数1 projectName:工程名
* 返回值 int:删除结果 0 成功 -1 工程名错误
*/
int removeProject (const QString& projectName);