跳到主要内容

程序运行时的各种其他操作和状态查看

(1)调用函数NRC_GetCurrentInstrRestPosNum()获取当前运行指令剩余点数,返回值当前运行指令剩余点数,需要注意的是当该指令未计算时,返回为-1。

(2)调用函数NRC_SetCompleteOneInstrCallBack(void (*fun)(void))设置执行完一条指令时的回调函数。当执行完一条指令时,将会调用此回调函数,参数 fun 是表示回调函数的函数指针,该回调函数不可含有耗时操作,否则将对程序的运行产生严重影响。

回调函数接口用法示例:

void msgHook()
{
NRC_Messsage tmp;//定义一个消息结构体对象
NRC_GetMesssage(1, tmp);//将消息队列中最早的消息赋值给对象tmp
printf("msgHook localTime=%d:%d::%d, 0x%x,0x%x,text=%s,size=%d\n",tmp.localTime.minute, tmp.localTime.second,tmp.localTime.milliseconds,tmp.kind,tmp.type,tmp.text.c_str(),NRC_GetMesssageSize()
);
NRC_Delayms(200);
}
int main()
{
NRC_SetCompleteOneInstrCallBack(msgHook);
}

消息结构体为:

struct NRC_Messsage
{
NRC_TIME localTime;///<消息产生时的系统时间
int kind; ///<消息级别:0:一般消息,1:警告消息,2:错误消息,3:重要消息
int code;///<消息编码
int robot;///<机器人编号
std::vector<int> param;///<消息内容参数,根据具体编码的不同,会有不同个数,一共预留5个
std::string text;///<消息内容
};

(3)调用函数NRC_GetProgramRunStatus()可以获取当前程序运行状态,其返回值为机器人当前程序运行状态 ,retval = 0 表示程序处于停止状态,retval =1 表示程序处于暂停状态, retval = 2 程序处于运行状态。可与循环函数连用,实现等待程序运行结束。

(4)需要修改控制器 IP 时,通过调用函数 int NRC_ModifyControllerIP(std::string name,std::string ip,std::string gateway,std::string dns)实现,IP 要修改为的目标 IP 时,要符合 IP 规则。

当需要恢复出厂设置时,调用函数NRC_RestoreFactorySettings()实现该功能,需要注意的是用该函数后,控制器随即就会重启,恢复出厂设置后,控制器中的各数据将会被清除,请谨慎操作。

(5)调用函数NRC_GetCurrentmMtorVel(double vel[])获取电机转速,参数 vel 是电机转速将通过数组返回,数组成员个数应不小于机器人的轴数。

电机转速接口函数的使用示例:

............
double vel[6];
NRC_GetCurrentmMtorVel( vel);
for(int i=0;i<6;i++)
{
cout<<"电机转速依次是:"<< vel[i]<< endl;
}
............