报错相关
3.7.1 弹出队列中的消息相关
通过调用函数NRC_Messsage NRC_FirstMesssagePop()
弹出消息队列中最早的消息,获取到队列中最早的消息,并从队列中移除该消息,返回的是队列中最早的消息。
同样通过调用函数NRC_Messsage NRC_LastMesssagePop()
弹出消息队列中最后的消息。 获取到队列中最后的消息,并从队列中移除该消息,返回的是队列中最后的消息。
通过调用函数NRC_GetMesssage(int num, NRC_Messsage& msg)
获取队列中第 num 个消息,该函数获取队列中第 num 个消息,不会移除该消息。参数 num 是指要获取的消息在队列中的编号,最早的消息编号为 1,取值范围:0 < num<= NRC_GetMesssageSize()参数 msg 是 获取的消息通过此参数返回。
通过调用函数NRC_GetMesssageSize()
功能是获取队列中消息总数。
调用函数NRC_ClearMesssage()
可以清空消息的队列。
注:用户自定义区间为 0x9000 之后。消息结构体删除早期版本中的成员 type,新增消息编码成员:code 和机器人编号成员:robot。 消息数据结构体如下:
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.7.2 回调函数
设置消息发生时的回调函数NRC_SetMsgHappenCallback(void (*fun)(void))
当有消息发生时,将会调用此回调函数 fun 回调函数的函数指针
下面是一个以上接口使用的示例程序(部分)
..........
void msgHook(){
NRC_Messsage tmp;//定义一个消息结构体对象
NRC_GetMesssage(1,tmp);//将消息队列中最早的消息赋值给duixiantmp
printf("msgHooklocalTime=%d:%d::%d,0x%x,0x%x,0x%x,text=%s,size=%d\n",tmp.localTime.minute,tmp.localTime.second,tmp.localTime.milliseconds,tmp.kind,tmp.code,tmp.robot,tmp.text.c_str(),NRC_GetMesssageSize());
}
...........
NRC_SetMsgHappenCallback(msgHook);//设置消息发生时的回调函数
...........
3.73.3 清除错误
函数NRC_ClearServoError()
可以用来清除伺服错误,需要注意的是并不是所有的伺服错误都可以直接清除,有些错误是需要先排除错误情况才能清除。
调用函数NRC_ClearAllError()
可以去清除全部错误,全部错误包括清空消息的队列,同时清除伺服错误。同样需要注意的是并不是所有的伺服错误都可以直接清除,有些错误是需要先排除错误情况才能清除。
时间数据结构体为:
struct NRC_TIME
{
int year;
int month;
int day;
int hour;
int minute;
int second;
int milliseconds;
};