1gydF4y2Ba
# include“robodk_api.h”gydF4y2Ba
2gydF4y2Ba
# include < QtNetwork / QTcpSocket >gydF4y2Ba
3.gydF4y2Ba
# include < QtCore / QProcess >gydF4y2Ba
4gydF4y2Ba
# include < cmath >gydF4y2Ba
5gydF4y2Ba
# include <算法>gydF4y2Ba
6gydF4y2Ba
# include < QFile >gydF4y2Ba
9gydF4y2Ba
# ifdef _WIN32gydF4y2Ba
11gydF4y2Ba
#定义ROBODK_DEFAULT_PATH_BIN“C: / RoboDK / bin / RoboDK.exe”gydF4y2Ba
13gydF4y2Ba
# elif __APPLE__gydF4y2Ba
15gydF4y2Ba
#定义ROBODK_DEFAULT_PATH_BIN”~ / RoboDK /应用程序/ RoboDK.app /内容/ MacOS / RoboDK”gydF4y2Ba
20.gydF4y2Ba
#定义ROBODK_DEFAULT_PATH_BIN”~ / RoboDK / bin / RoboDK”gydF4y2Ba
22gydF4y2Ba
# endifgydF4y2Ba
24gydF4y2Ba
#定义ROBODK_DEFAULT_PORT 20500gydF4y2Ba
26gydF4y2Ba
#定义ROBODK_API_TIMEOUT 1000gydF4y2Ba
27gydF4y2Ba
#定义ROBODK_API_START_STRING“CMD_START”gydF4y2Ba
28gydF4y2Ba
#定义ROBODK_API_READY_STRING“准备好”gydF4y2Ba
29gydF4y2Ba
#定义ROBODK_API_LF“\ n”gydF4y2Ba
33gydF4y2Ba
#定义M_PI 3.14159265358979323846264338327950288gydF4y2Ba
36gydF4y2Ba
的ifndef RDK_SKIP_NAMESPACEgydF4y2Ba
38gydF4y2Ba
# endifgydF4y2Ba
44gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我
_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
55gydF4y2Ba
intgydF4y2Bandofs_ok = qMin(ndofs, RDK_SIZE_JOINTS_MAX);gydF4y2Ba
56gydF4y2Ba
双gydF4y2Bajnts [RDK_SIZE_JOINTS_MAX];gydF4y2Ba
57gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< ndofs_ok;我+ +){gydF4y2Ba
58gydF4y2Ba关节jnts[我]=[我];gydF4y2Ba
64gydF4y2Ba
如果gydF4y2Ba(列> = ncols) {gydF4y2Ba
66gydF4y2BaqDebug () <
创建关节时tMatrix2D列超出范围gydF4y2Ba;gydF4y2Ba
68gydF4y2Ba
如果gydF4y2Ba(ndofs < 0) {gydF4y2Ba
84gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< RDK_SIZE_JOINTS_MAX;我+ +){gydF4y2Ba
89gydF4y2Ba
# ifdef ROBODK_API_FLOATSgydF4y2Ba
90gydF4y2Ba
常量gydF4y2Ba
浮动gydF4y2Ba*gydF4y2Ba
tJoints:值gydF4y2Ba()gydF4y2Ba
常量gydF4y2Ba{gydF4y2Ba
97gydF4y2Ba
# endifgydF4y2Ba
105gydF4y2Ba
如果gydF4y2Ba(ndofs > = 0) {gydF4y2Ba
108gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我
_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
114gydF4y2Ba
如果gydF4y2Ba(ndofs > = 0) {gydF4y2Ba
117gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我
_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
122gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我
_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
128gydF4y2Ba
如果gydF4y2Ba(!gydF4y2Ba
有效的gydF4y2Ba()) {gydF4y2Ba
129gydF4y2Ba
返回gydF4y2Ba
”“tJoints(无效)gydF4y2Ba;gydF4y2Ba
131gydF4y2BaQString值(gydF4y2Ba
“tJoints({”gydF4y2Ba);gydF4y2Ba
133gydF4y2Ba
返回gydF4y2Ba值;gydF4y2Ba
135gydF4y2Bavalues.append (QString::号码(gydF4y2Ba
_ValuesgydF4y2Ba[0],gydF4y2Ba
“f”gydF4y2Ba、精密));gydF4y2Ba
136gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Bai = 1;我
_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
137gydF4y2Bavalues.append(分离器);gydF4y2Ba
138gydF4y2Bavalues.append (QString::号码(gydF4y2Ba
_ValuesgydF4y2Ba(我),gydF4y2Ba
“f”gydF4y2Ba、精密));gydF4y2Ba
140gydF4y2Bavalues.append (gydF4y2Ba
“}”,gydF4y2Ba+ QString::数量(gydF4y2Ba
_nDOFsgydF4y2Ba) +gydF4y2Ba
“)”gydF4y2Ba);gydF4y2Ba
141gydF4y2Ba
返回gydF4y2Ba值;gydF4y2Ba
144gydF4y2BaQStringList jnts_list = QString(str).replace(gydF4y2Ba
”;“gydF4y2Ba,gydF4y2Ba
”、“gydF4y2Ba) .replace (gydF4y2Ba
“t \”gydF4y2Ba,gydF4y2Ba
”、“gydF4y2Ba) .split (gydF4y2Ba
”、“gydF4y2Ba, QString:: SkipEmptyParts);gydF4y2Ba
145gydF4y2Ba
_nDOFsgydF4y2Ba= qMin (jnts_list.length (), RDK_SIZE_JOINTS_MAX);gydF4y2Ba
146gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我
_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
147gydF4y2BaQString生态(jnts_list.at (i));gydF4y2Ba
150gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
158gydF4y2Ba
如果gydF4y2Ba(new_length >= 0 && new_length
_nDOFsgydF4y2Ba) {gydF4y2Ba
191gydF4y2BasetToIdentity ();gydF4y2Ba
195gydF4y2BasetToIdentity ();gydF4y2Ba
207gydF4y2Ba
垫:垫gydF4y2Ba(gydF4y2Ba
双gydF4y2Banx,gydF4y2Ba
双gydF4y2Ba牛,gydF4y2Ba
双gydF4y2Baax,gydF4y2Ba
双gydF4y2Batx,gydF4y2Ba
双gydF4y2Ba纽约,gydF4y2Ba
双gydF4y2Ba哦gydF4y2Ba
双gydF4y2Ba哦,gydF4y2Ba
双gydF4y2Ba泰,gydF4y2Ba
双gydF4y2Ba新西兰,gydF4y2Ba
双gydF4y2Ba盎司,gydF4y2Ba
双gydF4y2Ba阿兹,gydF4y2Ba
双gydF4y2Batz):gydF4y2Ba
208gydF4y2BaQMatrix4x4(nx, ox, ax, tx, ny, oy, ay, ty, nz, oz, az, tz, 0,0,0,1)gydF4y2Ba
213gydF4y2BaQMatrix4x4 (v [0], [4], [8], [12], [1], [5], [9], [13], [2], [6], [10], [14], [3], [7], [11], v [15])gydF4y2Ba
218gydF4y2BaQMatrix4x4 (v [0], [4], [8], [12], [1], [5], [9], [13], [2], [6], [10], [14], [3], [7], [11], v [15])gydF4y2Ba
225gydF4y2Ba垫::~垫(){gydF4y2Ba
231gydF4y2Baxyz [0] =gydF4y2Ba
得到gydF4y2Ba(0,0);gydF4y2Ba
232gydF4y2Baxyz [1] =gydF4y2Ba
得到gydF4y2Ba(1,0);gydF4y2Ba
233gydF4y2Baxyz [2] =gydF4y2Ba
得到gydF4y2Ba(2,0);gydF4y2Ba
236gydF4y2Baxyz [0] =gydF4y2Ba
得到gydF4y2Ba(0,1);gydF4y2Ba
237gydF4y2Baxyz [1] =gydF4y2Ba
得到gydF4y2Ba(1,1);gydF4y2Ba
238gydF4y2Baxyz [2] =gydF4y2Ba
得到gydF4y2Ba(2, 1);gydF4y2Ba
241gydF4y2Baxyz [0] =gydF4y2Ba
得到gydF4y2Ba(0, 2);gydF4y2Ba
242gydF4y2Baxyz [1] =gydF4y2Ba
得到gydF4y2Ba(1、2);gydF4y2Ba
243gydF4y2Baxyz [2] =gydF4y2Ba
得到gydF4y2Ba(2, 2);gydF4y2Ba
246gydF4y2Baxyz [0] =gydF4y2Ba
得到gydF4y2Ba(0, 3);gydF4y2Ba
247gydF4y2Baxyz [1] =gydF4y2Ba
得到gydF4y2Ba(1、3);gydF4y2Ba
248gydF4y2Baxyz [2] =gydF4y2Ba
得到gydF4y2Ba(2、3);gydF4y2Ba
279gydF4y2Ba
集gydF4y2Ba(1, - 1, xyz [1]);gydF4y2Ba
294gydF4y2BaQVector4D rw(- >行(i));gydF4y2Ba
295gydF4y2Barw [j] =价值;gydF4y2Ba
296gydF4y2BasetRow (rw);gydF4y2Ba
303gydF4y2Ba
返回gydF4y2Ba行(我)[j];gydF4y2Ba
310gydF4y2Ba
返回gydF4y2Ba——>倒();gydF4y2Ba
314gydF4y2Ba
常量gydF4y2Ba
保龄球gydF4y2Badebug_info =gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
316gydF4y2Ba
常量gydF4y2Ba
双gydF4y2Ba托尔= 1 e;gydF4y2Ba
320gydF4y2Ba
如果gydF4y2Ba(晶圆厂((gydF4y2Ba
双gydF4y2Ba) DOT(vx,vy)) > tol){gydF4y2Ba
321gydF4y2Ba
如果gydF4y2Ba(debug_info) {gydF4y2Ba
322gydF4y2BaqDebug () <
“向量X和Y不垂直!”gydF4y2Ba;gydF4y2Ba
324gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
325gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(晶圆厂((gydF4y2Ba
双gydF4y2Ba) DOT(vx,vz)) > tol){gydF4y2Ba
326gydF4y2Ba
如果gydF4y2Ba(debug_info) {gydF4y2Ba
327gydF4y2BaqDebug () <
“向量X和Z不垂直!”gydF4y2Ba;gydF4y2Ba
329gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
330gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(晶圆厂((gydF4y2Ba
双gydF4y2Ba) DOT(vy,vz)) > tol){gydF4y2Ba
331gydF4y2Ba
如果gydF4y2Ba(debug_info) {gydF4y2Ba
332gydF4y2BaqDebug () <
“向量Y和Z不垂直!”gydF4y2Ba;gydF4y2Ba
334gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
335gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(晶圆厂((gydF4y2Ba
双gydF4y2Ba) (NORM(vx)-1.0)) > tol){gydF4y2Ba
336gydF4y2Ba
如果gydF4y2Ba(debug_info) {gydF4y2Ba
337gydF4y2BaqDebug () <
“向量X不是酉的!”gydF4y2Ba< <规范(vx);gydF4y2Ba
339gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
340gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(晶圆厂((gydF4y2Ba
双gydF4y2Ba) (NORM(vy)-1.0)) > tol){gydF4y2Ba
341gydF4y2Ba
如果gydF4y2Ba(debug_info) {gydF4y2Ba
342gydF4y2BaqDebug () <
“向量Y不是酉的!”gydF4y2Ba< <规范(v);gydF4y2Ba
344gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
345gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(晶圆厂((gydF4y2Ba
双gydF4y2Ba) (NORM(vz)-1.0)) > tol){gydF4y2Ba
346gydF4y2Ba
如果gydF4y2Ba(debug_info) {gydF4y2Ba
347gydF4y2BaqDebug () <
“向量Z不是酉的!”gydF4y2Ba< <规范(款);gydF4y2Ba
349gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
351gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
364gydF4y2Ba正常化(vx);gydF4y2Ba
365gydF4y2Ba十字架(vz vx, v);gydF4y2Ba
366gydF4y2Ba正常化(款);gydF4y2Ba
367gydF4y2Ba十字架(vz v, vx);gydF4y2Ba
368gydF4y2Ba正常化(v);gydF4y2Ba
376gydF4y2Ba
返回gydF4y2Ba! is_homogeneous;gydF4y2Ba
383gydF4y2Ba
双gydF4y2Bax =gydF4y2Ba
得到gydF4y2Ba(0, 3);gydF4y2Ba
384gydF4y2Ba
双gydF4y2Bay =gydF4y2Ba
得到gydF4y2Ba(1、3);gydF4y2Ba
385gydF4y2Ba
双gydF4y2Baz =gydF4y2Ba
得到gydF4y2Ba(2、3);gydF4y2Ba
386gydF4y2Ba
双gydF4y2Baw, p, r;gydF4y2Ba
387gydF4y2Ba
如果gydF4y2Ba(gydF4y2Ba
得到gydF4y2Ba(2,0) > (1.0 - 1e-6)){gydF4y2Ba
388gydF4y2Bap = -M_PI * 0.5;gydF4y2Ba
389gydF4y2Bar = 0;gydF4y2Ba
391gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(gydF4y2Ba
得到gydF4y2Ba(2,0) < -1.0 + 1e-6){gydF4y2Ba
392gydF4y2Bap = 0.5 * M_PI;gydF4y2Ba
393gydF4y2Bar = 0;gydF4y2Ba
395gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
400gydF4y2Baxyzwpr [0] = x;gydF4y2Ba
401gydF4y2Baxyzwpr [1] = y;gydF4y2Ba
402gydF4y2Baxyzwpr [2] = z;gydF4y2Ba
403gydF4y2Baxyzwpr [3] = r * 180.0 / M_PI;gydF4y2Ba
404gydF4y2Baxyzwpr [4] = p * 180.0 / M_PI;gydF4y2Ba
405gydF4y2Baxyzwpr [5] = w * 180.0 / M_PI;gydF4y2Ba
408gydF4y2BaQStringgydF4y2Ba
垫:ToStringgydF4y2Ba(gydF4y2Ba
常量gydF4y2BaQString分离器,gydF4y2Ba
intgydF4y2Ba精度,gydF4y2Ba
保龄球gydF4y2Baxyzwpr_only)gydF4y2Ba
常量gydF4y2Ba{gydF4y2Ba
409gydF4y2Ba
如果gydF4y2Ba(!gydF4y2Ba
有效的gydF4y2Ba()) {gydF4y2Ba
410gydF4y2Ba
返回gydF4y2Ba
“垫(无效)gydF4y2Ba;gydF4y2Ba
412gydF4y2BaQString str;gydF4y2Ba
414gydF4y2Bastr.append (gydF4y2Ba
“警告! !姿势不是同质的!使用Mat::MakeHomogeneous()使这个矩阵同构\n"gydF4y2Ba);gydF4y2Ba
416gydF4y2Bastr.append (gydF4y2Ba
“垫(XYZRPW_2_Mat(“gydF4y2Ba);gydF4y2Ba
420gydF4y2Bastr.append (QString::数量(xyzwpr [0],gydF4y2Ba
“f”gydF4y2Ba、精密));gydF4y2Ba
421gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Bai = 1;我< 6;我+ +){gydF4y2Ba
422gydF4y2Bastr.append(分离器);gydF4y2Ba
423gydF4y2Bastr.append (QString::数量(xyzwpr[我],gydF4y2Ba
“f”gydF4y2Ba、精密));gydF4y2Ba
425gydF4y2Bastr.append (gydF4y2Ba
“)”gydF4y2Ba);gydF4y2Ba
427gydF4y2Ba
如果gydF4y2Ba(xyzwpr_only) {gydF4y2Ba
428gydF4y2Ba
返回gydF4y2Bastr;gydF4y2Ba
430gydF4y2Bastr.append (gydF4y2Ba
“\ n”gydF4y2Ba);gydF4y2Ba
431gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 4;我+ +){gydF4y2Ba
432gydF4y2Bastr.append (gydF4y2Ba
“(”gydF4y2Ba);gydF4y2Ba
433gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Baj = 0;j < 4;j + +) {gydF4y2Ba
434gydF4y2Bastr.append (QString::数量(行(我)[j],gydF4y2Ba
“f”gydF4y2Ba、精密));gydF4y2Ba
435gydF4y2Ba
如果gydF4y2Ba(j < 3) {gydF4y2Ba
436gydF4y2Bastr.append(分离器);gydF4y2Ba
439gydF4y2Bastr.append (gydF4y2Ba
”);\ n”gydF4y2Ba);gydF4y2Ba
441gydF4y2Ba
返回gydF4y2Bastr;gydF4y2Ba
445gydF4y2BaQStringList values_list = QString(pose_str).replace(gydF4y2Ba
”;“gydF4y2Ba,gydF4y2Ba
”、“gydF4y2Ba) .replace (gydF4y2Ba
“t \”gydF4y2Ba,gydF4y2Ba
”、“gydF4y2Ba) .split (gydF4y2Ba
”、“gydF4y2Ba, QString:: SkipEmptyParts);gydF4y2Ba
446gydF4y2Ba
intgydF4y2Banvalues = qMin(values_list.length(), 6);gydF4y2Ba
448gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 6;我+ +){gydF4y2Ba
449gydF4y2Baxyzwpr[我]= 0.0;gydF4y2Ba
451gydF4y2Ba
如果gydF4y2Ba(nvalues < 6) {gydF4y2Ba
453gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
455gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nvalues;我+ +){gydF4y2Ba
456gydF4y2BaQString生态(values_list.at (i));gydF4y2Ba
457gydF4y2Ba.toDouble xyzwpr[我]= stri.trimmed () ();gydF4y2Ba
460gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
465gydF4y2Ba
双gydF4y2Baa = r * M_PI / 180.0;gydF4y2Ba
466gydF4y2Ba
双gydF4y2Bab = p * M_PI / 180.0;gydF4y2Ba
467gydF4y2Ba
双gydF4y2Bac = w * M_PI / 180.0;gydF4y2Ba
468gydF4y2Ba
双gydF4y2Baca = cos (a);gydF4y2Ba
469gydF4y2Ba
双gydF4y2Basa =罪(a);gydF4y2Ba
470gydF4y2Ba
双gydF4y2Bacb = cos (b);gydF4y2Ba
471gydF4y2Ba
双gydF4y2Ba某人=罪(b);gydF4y2Ba
472gydF4y2Ba
双gydF4y2Bacc = cos (c);gydF4y2Ba
473gydF4y2Ba
双gydF4y2Basc =罪(c);gydF4y2Ba
474gydF4y2Ba
返回gydF4y2Ba
垫gydF4y2Ba(cb * cc, cc * sa * sb - ca * sc, sa * sc + ca * cc * sb, x, cb * sc, ca * cc + sa * sb * sc, ca * sb * sc - cc * sa, y, -sb, cb * sa, ca * cb, z);gydF4y2Ba
477gydF4y2Ba
返回gydF4y2Ba
XYZRPW_2_MatgydF4y2Ba(xyzwpr[0], xyzwpr[1], xyzwpr[2], xyzwpr[3], xyzwpr[4], xyzwpr[5]);gydF4y2Ba
482gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 4;我+ +){gydF4y2Ba
483gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Baj = 0;j < 4;j + +) {gydF4y2Ba
490gydF4y2Ba
双gydF4y2Ba* _ddata16_non_const = (gydF4y2Ba
双gydF4y2Ba*)gydF4y2Ba
_ddata16gydF4y2Ba;gydF4y2Ba
491gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 16;+ + i) {gydF4y2Ba
492gydF4y2Ba_ddata16_non_const[我]= constData()(我);gydF4y2Ba
497gydF4y2Ba
返回gydF4y2BaconstData ();gydF4y2Ba
500gydF4y2Ba
# ifdef ROBODK_API_FLOATSgydF4y2Ba
501gydF4y2Ba
常量gydF4y2Ba
浮动gydF4y2Ba*gydF4y2Ba
垫:值gydF4y2Ba()gydF4y2Ba
常量gydF4y2Ba{gydF4y2Ba
502gydF4y2Ba
返回gydF4y2BaconstData ();gydF4y2Ba
504gydF4y2Ba
其他#gydF4y2Ba
509gydF4y2Ba
# endifgydF4y2Ba
514gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 16;+ + i) {gydF4y2Ba
515gydF4y2Ba数据[我]= constData()(我);gydF4y2Ba
519gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 16;+ + i) {gydF4y2Ba
520gydF4y2Ba数据[我]= constData()(我);gydF4y2Ba
529gydF4y2Bamat.setToIdentity ();gydF4y2Ba
531gydF4y2Ba
返回gydF4y2Ba垫;gydF4y2Ba
535gydF4y2Ba
双gydF4y2Ba残雪= cos (rx);gydF4y2Ba
536gydF4y2Ba
双gydF4y2Basx =罪(rx);gydF4y2Ba
537gydF4y2Ba
返回gydF4y2Ba
垫gydF4y2Ba(1,0,0,0,0, cx, -sx, 0,0, sx, cx, 0);gydF4y2Ba
541gydF4y2Ba
双gydF4y2Bacy = cos(办法);gydF4y2Ba
542gydF4y2Ba
双gydF4y2Basy =罪(办法);gydF4y2Ba
543gydF4y2Ba
返回gydF4y2Ba
垫gydF4y2Ba(cy, 0, sy, 0, 0, 1, 0, 0, -sy, 0, cy, 0);gydF4y2Ba
547gydF4y2Ba
双gydF4y2Bacz = cos (rz);gydF4y2Ba
548gydF4y2Ba
双gydF4y2Ba深圳=罪(rz);gydF4y2Ba
549gydF4y2Ba
返回gydF4y2Ba
垫gydF4y2Ba(cz, -sz, 0,0, sz, cz, 0,0, 0,1, 0);gydF4y2Ba
560gydF4y2Ba
项目:项目(gydF4y2Ba
RoboDKgydF4y2Ba*rdk, quint64 ptr, qint32类型){gydF4y2Ba
565gydF4y2Ba项目:项目(gydF4y2Ba
常量gydF4y2Ba项目及其它){gydF4y2Ba
570gydF4y2Ba项目::~项(){gydF4y2Ba
574gydF4y2BaQString项目::ToString ()gydF4y2Ba
常量gydF4y2Ba{gydF4y2Ba
575gydF4y2Ba
如果gydF4y2Ba(这- - - - - - >gydF4y2Ba
有效的gydF4y2Ba()) {gydF4y2Ba
578gydF4y2Ba
返回gydF4y2Ba
“项(无效)gydF4y2Ba;gydF4y2Ba
604gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Item_Type”gydF4y2Ba);gydF4y2Ba
605gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
606gydF4y2Ba
intgydF4y2Baitemtype =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
608gydF4y2Ba
返回gydF4y2Baitemtype;gydF4y2Ba
626gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“删除”gydF4y2Ba);gydF4y2Ba
627gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
638gydF4y2Ba
如果gydF4y2Ba(check_deleted) {gydF4y2Ba
649gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Parent”gydF4y2Ba);gydF4y2Ba
650gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
662gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Parent_Static”gydF4y2Ba);gydF4y2Ba
663gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
674gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Attach_Closest”gydF4y2Ba);gydF4y2Ba
675gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
678gydF4y2Ba
返回gydF4y2Baitem_attached;gydF4y2Ba
687gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Detach_Closest”gydF4y2Ba);gydF4y2Ba
688gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
692gydF4y2Ba
返回gydF4y2Baitem_detached;gydF4y2Ba
700gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Detach_All”gydF4y2Ba);gydF4y2Ba
701gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
713gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Parent”gydF4y2Ba);gydF4y2Ba
714gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
717gydF4y2Ba
返回gydF4y2Baitm_parent;gydF4y2Ba
728gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Childs”gydF4y2Ba);gydF4y2Ba
729gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
730gydF4y2Ba
intgydF4y2Banitems =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
731gydF4y2BaQList < Item > itemlist;gydF4y2Ba
732gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nitems;我+ +)gydF4y2Ba
734gydF4y2Baitemlist.append (gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Item ());gydF4y2Ba
737gydF4y2Ba
返回gydF4y2Baitemlist;gydF4y2Ba
746gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Visible”gydF4y2Ba);gydF4y2Ba
747gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
748gydF4y2Ba
intgydF4y2Ba可见=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
750gydF4y2Ba
返回gydF4y2Ba(可见! = 0);gydF4y2Ba
758gydF4y2Ba
如果gydF4y2Ba(visible_frame < 0)gydF4y2Ba
760gydF4y2BaVisible_frame = visible ?1: 0;gydF4y2Ba
763gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Visible”gydF4y2Ba);gydF4y2Ba
764gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
766gydF4y2Ba
_RDKgydF4y2Ba- > _send_Int (visible_frame);gydF4y2Ba
776gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Name”gydF4y2Ba);gydF4y2Ba
777gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
778gydF4y2BaQString name =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
780gydF4y2Ba
返回gydF4y2Ba名称;gydF4y2Ba
789gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Name”gydF4y2Ba);gydF4y2Ba
790gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
804gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Hlocal”gydF4y2Ba);gydF4y2Ba
805gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
817gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Hlocal”gydF4y2Ba);gydF4y2Ba
818gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
821gydF4y2Ba
返回gydF4y2Ba构成;gydF4y2Ba
830gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Hgeom”gydF4y2Ba);gydF4y2Ba
831gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
842gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Hgeom”gydF4y2Ba);gydF4y2Ba
843gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
846gydF4y2Ba
返回gydF4y2Ba构成;gydF4y2Ba
881gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Tool”gydF4y2Ba);gydF4y2Ba
882gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
885gydF4y2Ba
返回gydF4y2Ba构成;gydF4y2Ba
894gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Frame”gydF4y2Ba);gydF4y2Ba
895gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
898gydF4y2Ba
返回gydF4y2Ba构成;gydF4y2Ba
908gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Frame”gydF4y2Ba);gydF4y2Ba
910gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
921gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Frame_ptr”gydF4y2Ba);gydF4y2Ba
923gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
934gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Tool”gydF4y2Ba);gydF4y2Ba
936gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
947gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Tool_ptr”gydF4y2Ba);gydF4y2Ba
949gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
959gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Hlocal_Abs”gydF4y2Ba);gydF4y2Ba
960gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
972gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Hlocal_Abs”gydF4y2Ba);gydF4y2Ba
973gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
976gydF4y2Ba
返回gydF4y2Ba构成;gydF4y2Ba
985gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Color”gydF4y2Ba);gydF4y2Ba
986gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
987gydF4y2Ba
_RDKgydF4y2Ba- > _send_Array (colorRGBA 4);gydF4y2Ba
1004gydF4y2Ba
双gydF4y2Bascale_xyz [3];gydF4y2Ba
1005gydF4y2Bascale_xyz[0] =规模;gydF4y2Ba
1006gydF4y2Bascale_xyz[1] =规模;gydF4y2Ba
1007gydF4y2Bascale_xyz[2] =规模;gydF4y2Ba
1018gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“规模”gydF4y2Ba);gydF4y2Ba
1019gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1020gydF4y2Ba
_RDKgydF4y2Ba- > _send_Array (scale_xyz 3);gydF4y2Ba
1039gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_MachiningParams”gydF4y2Ba);gydF4y2Ba
1040gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1043gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“NO_UPDATE”gydF4y2Ba+选项);gydF4y2Ba
1046gydF4y2Ba
_RDKgydF4y2Ba- > _TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
1047gydF4y2Ba
双gydF4y2Ba状态=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int () / 1000.0;gydF4y2Ba
1049gydF4y2Ba
返回gydF4y2Ba程序;gydF4y2Ba
1057gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Target_As_RT”gydF4y2Ba);gydF4y2Ba
1058gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1067gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Target_As_JT”gydF4y2Ba);gydF4y2Ba
1068gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1077gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Target_Is_JT”gydF4y2Ba);gydF4y2Ba
1078gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1079gydF4y2Ba
intgydF4y2Bais_jt =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1081gydF4y2Ba
返回gydF4y2Bais_jt > 0;gydF4y2Ba
1093gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Thetas”gydF4y2Ba);gydF4y2Ba
1094gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1097gydF4y2Ba
返回gydF4y2Bajnts;gydF4y2Ba
1109gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Home”gydF4y2Ba);gydF4y2Ba
1110gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1113gydF4y2Ba
返回gydF4y2Bajnts;gydF4y2Ba
1123gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Home”gydF4y2Ba);gydF4y2Ba
1125gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1136gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_LinkObjId”gydF4y2Ba);gydF4y2Ba
1137gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1141gydF4y2Ba
返回gydF4y2Ba项;gydF4y2Ba
1151gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_LinkType”gydF4y2Ba);gydF4y2Ba
1152gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1156gydF4y2Ba
返回gydF4y2Ba项;gydF4y2Ba
1166gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Thetas”gydF4y2Ba);gydF4y2Ba
1168gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1179gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_RobLimits”gydF4y2Ba);gydF4y2Ba
1180gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1181gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Array (lower_limits);gydF4y2Ba
1182gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Array (upper_limits);gydF4y2Ba
1183gydF4y2Ba
双gydF4y2Bajoints_type =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int () / 1000.0;gydF4y2Ba
1194gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_RobLimits”gydF4y2Ba);gydF4y2Ba
1195gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1196gydF4y2Ba
_RDKgydF4y2Ba- > _send_Array (&lower_limits);gydF4y2Ba
1197gydF4y2Ba
_RDKgydF4y2Ba- > _send_Array (&upper_limits);gydF4y2Ba
1209gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Robot”gydF4y2Ba);gydF4y2Ba
1210gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1224gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“AddToolEmpty”gydF4y2Ba);gydF4y2Ba
1225gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1230gydF4y2Ba
返回gydF4y2Banewtool;gydF4y2Ba
1240gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_FK”gydF4y2Ba);gydF4y2Ba
1242gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1245gydF4y2Ba
如果gydF4y2Ba(工具! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
1246gydF4y2Babase2flange =构成*(*工具);gydF4y2Ba
1248gydF4y2Ba
如果gydF4y2Ba(ref ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
1249gydF4y2Babase2flange = ref - >gydF4y2Ba
发票gydF4y2Ba() * base2flange;gydF4y2Ba
1252gydF4y2Ba
返回gydF4y2Babase2flange;gydF4y2Ba
1262gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_Thetas_Config”gydF4y2Ba);gydF4y2Ba
1264gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1265gydF4y2Ba
intgydF4y2Ba深圳= RDK_SIZE_MAX_CONFIG;gydF4y2Ba
1281gydF4y2Ba
如果gydF4y2Ba(工具! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
1282gydF4y2Babase2flange =构成*工具- >gydF4y2Ba
发票gydF4y2Ba();gydF4y2Ba
1284gydF4y2Ba
如果gydF4y2Ba(ref ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
1285gydF4y2Babase2法兰= (*ref) * base2法兰;gydF4y2Ba
1288gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_IK”gydF4y2Ba);gydF4y2Ba
1289gydF4y2Ba
_RDKgydF4y2Ba- > _send_Pose (base2flange);gydF4y2Ba
1290gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1293gydF4y2Ba
返回gydF4y2Bajnts;gydF4y2Ba
1308gydF4y2Ba
如果gydF4y2Ba(工具! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
1309gydF4y2Babase2flange =构成*工具- >gydF4y2Ba
发票gydF4y2Ba();gydF4y2Ba
1311gydF4y2Ba
如果gydF4y2Ba(ref ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
1312gydF4y2Babase2法兰= (*ref) * base2法兰;gydF4y2Ba
1315gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_IK_jnts”gydF4y2Ba);gydF4y2Ba
1316gydF4y2Ba
_RDKgydF4y2Ba- > _send_Pose (base2flange);gydF4y2Ba
1317gydF4y2Ba
_RDKgydF4y2Ba- > _send_Array (&joints_approx);gydF4y2Ba
1318gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1322gydF4y2Ba
返回gydF4y2Bajnts;gydF4y2Ba
1334gydF4y2Ba
如果gydF4y2Ba(工具! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
1335gydF4y2Babase2flange =构成*工具- >gydF4y2Ba
发票gydF4y2Ba();gydF4y2Ba
1337gydF4y2Ba
如果gydF4y2Ba(ref ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
1338gydF4y2Babase2法兰= (*ref) * base2法兰;gydF4y2Ba
1341gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_IK_cmpl”gydF4y2Ba);gydF4y2Ba
1342gydF4y2Ba
_RDKgydF4y2Ba- > _send_Pose (base2flange);gydF4y2Ba
1343gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1346gydF4y2Ba
返回gydF4y2Bamat2d;gydF4y2Ba
1350gydF4y2BaQList < tJoints > jnts_list;gydF4y2Ba
1353gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nsol;我+ +){gydF4y2Ba
1356gydF4y2Bajnts_list.append (jnts);gydF4y2Ba
1358gydF4y2Ba
返回gydF4y2Bajnts_list;gydF4y2Ba
1368gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“连接”gydF4y2Ba);gydF4y2Ba
1369gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1371gydF4y2Ba
intgydF4y2Ba状态=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1373gydF4y2Ba
返回gydF4y2Ba地位! = 0;gydF4y2Ba
1382gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“断开”gydF4y2Ba);gydF4y2Ba
1383gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1384gydF4y2Ba
intgydF4y2Ba状态=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1386gydF4y2Ba
返回gydF4y2Ba地位! = 0;gydF4y2Ba
1397gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Add_INSMOVE”gydF4y2Ba);gydF4y2Ba
1399gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1402gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
1403gydF4y2Ba
_RDKgydF4y2Ba- > _moveX(技能,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
这gydF4y2Ba1、阻塞);gydF4y2Ba
1413gydF4y2Ba
_RDKgydF4y2Ba- > _moveX (gydF4y2Ba
nullptrgydF4y2Ba关节,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
这gydF4y2Ba1、阻塞);gydF4y2Ba
1422gydF4y2Ba
_RDKgydF4y2Ba- > _moveX (gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba及目标,gydF4y2Ba
这gydF4y2Ba1、阻塞);gydF4y2Ba
1433gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Add_INSMOVE”gydF4y2Ba);gydF4y2Ba
1435gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1438gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
1439gydF4y2Ba
_RDKgydF4y2Ba- > _moveX(技能,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
这gydF4y2Ba2、阻断);gydF4y2Ba
1449gydF4y2Ba
_RDKgydF4y2Ba- > _moveX (gydF4y2Ba
nullptrgydF4y2Ba关节,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
这gydF4y2Ba2、阻断);gydF4y2Ba
1458gydF4y2Ba
_RDKgydF4y2Ba- > _moveX (gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba及目标,gydF4y2Ba
这gydF4y2Ba2、阻断);gydF4y2Ba
1468gydF4y2Ba
_RDKgydF4y2Ba- > _moveC (&itemtarget1gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba&itemtarget2,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
这gydF4y2Ba,屏蔽);gydF4y2Ba
1478gydF4y2Ba
_RDKgydF4y2Ba- > _moveC (gydF4y2Ba
nullptrgydF4y2Ba&joints1,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba&joints2,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
这gydF4y2Ba,屏蔽);gydF4y2Ba
1488gydF4y2Ba
_RDKgydF4y2Ba- > _moveC (gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba&target1,gydF4y2Ba
nullptrgydF4y2Ba,gydF4y2Ba
nullptrgydF4y2Ba&target2,gydF4y2Ba
这gydF4y2Ba,屏蔽);gydF4y2Ba
1500gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“CollisionMove”gydF4y2Ba);gydF4y2Ba
1501gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1504gydF4y2Ba
_RDKgydF4y2Ba- > _send_Int ((gydF4y2Ba
intgydF4y2Ba) (minstep_deg * 1000.0));gydF4y2Ba
1506gydF4y2Ba
intgydF4y2Ba碰撞=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1507gydF4y2Ba
_RDKgydF4y2Ba- > _TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
1509gydF4y2Ba
返回gydF4y2Ba碰撞;gydF4y2Ba
1521gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“CollisionMoveL”gydF4y2Ba);gydF4y2Ba
1522gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1525gydF4y2Ba
_RDKgydF4y2Ba- > _send_Int ((gydF4y2Ba
intgydF4y2Ba) (minstep_deg * 1000.0));gydF4y2Ba
1527gydF4y2Ba
intgydF4y2Ba碰撞=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1528gydF4y2Ba
_RDKgydF4y2Ba- > _TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
1530gydF4y2Ba
返回gydF4y2Ba碰撞;gydF4y2Ba
1541gydF4y2Ba
无效gydF4y2Ba
项目::setSpeedgydF4y2Ba(gydF4y2Ba
双gydF4y2Baspeed_linear,gydF4y2Ba
双gydF4y2Baaccel_linear,gydF4y2Ba
双gydF4y2Baspeed_joints,gydF4y2Ba
双gydF4y2Baaccel_joints) {gydF4y2Ba
1543gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_Speed4”gydF4y2Ba);gydF4y2Ba
1544gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1545gydF4y2Ba
双gydF4y2Baspeed_accel [4];gydF4y2Ba
1546gydF4y2Baspeed_accel [0] = speed_linear;gydF4y2Ba
1547gydF4y2Baspeed_accel [1] = accel_linear;gydF4y2Ba
1548gydF4y2Baspeed_accel [2] = speed_joints;gydF4y2Ba
1549gydF4y2Baspeed_accel [3] = accel_joints;gydF4y2Ba
1550gydF4y2Ba
_RDKgydF4y2Ba- > _send_Array (speed_accel 4);gydF4y2Ba
1560gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_ZoneData”gydF4y2Ba);gydF4y2Ba
1561gydF4y2Ba
_RDKgydF4y2Ba- > _send_Int ((gydF4y2Ba
intgydF4y2Ba) (zonedata * 1000.0));gydF4y2Ba
1562gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1572gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Show_Seq”gydF4y2Ba);gydF4y2Ba
1574gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1585gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“IsBusy”gydF4y2Ba);gydF4y2Ba
1586gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1587gydF4y2Ba
intgydF4y2Ba忙=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1589gydF4y2Ba
返回gydF4y2Ba(忙> 0);gydF4y2Ba
1598gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“停止”gydF4y2Ba);gydF4y2Ba
1599gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1609gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“WaitMove”gydF4y2Ba);gydF4y2Ba
1610gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1612gydF4y2Ba
_RDKgydF4y2Ba->_TIMEOUT = (int)(timeout_sec * 1000.0);gydF4y2Ba
1614gydF4y2Ba
_RDKgydF4y2Ba- > _TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
1629gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_AbsAccOn”gydF4y2Ba);gydF4y2Ba
1630gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1647gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“MakeProg”gydF4y2Ba);gydF4y2Ba
1648gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1650gydF4y2Ba
intgydF4y2Baprog_status =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1651gydF4y2BaQString prog_log_str =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
1653gydF4y2Ba
保龄球gydF4y2Ba成功=gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
1654gydF4y2Ba
如果gydF4y2Ba(prog_status > 1) {gydF4y2Ba
1655gydF4y2Ba成功=gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
1657gydF4y2Ba
返回gydF4y2Ba成功;gydF4y2Ba
1667gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“S_ProgRunType”gydF4y2Ba);gydF4y2Ba
1668gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1669gydF4y2Ba
_RDKgydF4y2Ba- > _send_Int (program_run_type);gydF4y2Ba
1684gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“RunProg”gydF4y2Ba);gydF4y2Ba
1685gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1686gydF4y2Ba
intgydF4y2Baprog_status =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1688gydF4y2Ba
返回gydF4y2Baprog_status;gydF4y2Ba
1703gydF4y2Ba
如果gydF4y2Ba(parameters.isEmpty ()) {gydF4y2Ba
1704gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“RunProg”gydF4y2Ba);gydF4y2Ba
1705gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1706gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
1707gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“RunProgParam”gydF4y2Ba);gydF4y2Ba
1708gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1711gydF4y2Ba
intgydF4y2Baprogstatus =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1713gydF4y2Ba
返回gydF4y2Baprogstatus;gydF4y2Ba
1723gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“RunCode2”gydF4y2Ba);gydF4y2Ba
1724gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1725gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (QString(代码).replace (gydF4y2Ba
“\ n \ n”gydF4y2Ba,gydF4y2Ba
“< br >”gydF4y2Ba) .replace (gydF4y2Ba
“\ n”gydF4y2Ba,gydF4y2Ba
“< br >”gydF4y2Ba));gydF4y2Ba
1727gydF4y2Ba
intgydF4y2Baprogstatus =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1729gydF4y2Ba
返回gydF4y2Baprogstatus;gydF4y2Ba
1738gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“RunPause”gydF4y2Ba);gydF4y2Ba
1739gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1740gydF4y2Ba
_RDKgydF4y2Ba- > _send_Int ((gydF4y2Ba
intgydF4y2Ba) (time_ms * 1000.0));gydF4y2Ba
1752gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“setDO”gydF4y2Ba);gydF4y2Ba
1753gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1765gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“setAO”gydF4y2Ba);gydF4y2Ba
1766gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1778gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“getDI”gydF4y2Ba);gydF4y2Ba
1779gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1781gydF4y2BaQString io_value (gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Line ());gydF4y2Ba
1783gydF4y2Ba
返回gydF4y2Baio_value;gydF4y2Ba
1792gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“getAI”gydF4y2Ba);gydF4y2Ba
1793gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1795gydF4y2BaQString di_value (gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Line ());gydF4y2Ba
1797gydF4y2Ba
返回gydF4y2Badi_value;gydF4y2Ba
1806gydF4y2Ba
无效gydF4y2Ba
项目::waitDIgydF4y2Ba(gydF4y2Ba
常量gydF4y2BaQString &io_var,gydF4y2Ba
常量gydF4y2BaQString &io_value,gydF4y2Ba
双gydF4y2Batimeout_ms) {gydF4y2Ba
1808gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“waitDI”gydF4y2Ba);gydF4y2Ba
1809gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1812gydF4y2Ba
_RDKgydF4y2Ba- > _send_Int ((gydF4y2Ba
intgydF4y2Ba) (timeout_ms * 1000.0));gydF4y2Ba
1826gydF4y2Ba
无效gydF4y2Ba
项目::customInstructiongydF4y2Ba(gydF4y2Ba
常量gydF4y2BaQString名称,gydF4y2Ba
常量gydF4y2BaQString &path_run,gydF4y2Ba
常量gydF4y2BaQString &path_icon,gydF4y2Ba
保龄球gydF4y2Ba阻塞,gydF4y2Ba
常量gydF4y2BaQString &cmd_run_on_robot) {gydF4y2Ba
1828gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“InsCustom2”gydF4y2Ba);gydF4y2Ba
1829gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1833gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (cmd_run_on_robot);gydF4y2Ba
1873gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Prog_ShowIns”gydF4y2Ba);gydF4y2Ba
1874gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1885gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Prog_ShowTargets”gydF4y2Ba);gydF4y2Ba
1886gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1899gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Prog_Nins”gydF4y2Ba);gydF4y2Ba
1900gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1901gydF4y2Ba
intgydF4y2Banin =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1903gydF4y2Ba
返回gydF4y2Banin;gydF4y2Ba
1918gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Prog_GIns”gydF4y2Ba);gydF4y2Ba
1919gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1921gydF4y2Baname =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
1922gydF4y2Bainstype =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1923gydF4y2Bamovetype = 0;gydF4y2Ba
1924gydF4y2Baisjointtarget =gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
1928gydF4y2Bamovetype =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1929gydF4y2Baisjointtarget =gydF4y2Ba
_RDKgydF4y2Ba->_recv_Int() > 0 ?正确的:gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
1930gydF4y2Ba目标=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Pose ();gydF4y2Ba
1948gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“Prog_SIns”gydF4y2Ba);gydF4y2Ba
1949gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1956gydF4y2Ba
_RDKgydF4y2Ba- > _send_Int (isjointtarget ?1: 0);gydF4y2Ba
1971gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_ProgInsList”gydF4y2Ba);gydF4y2Ba
1972gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1974gydF4y2Ba
intgydF4y2Ba错误=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1976gydF4y2Ba
返回gydF4y2Ba错误;gydF4y2Ba
1991gydF4y2Ba
双gydF4y2Ba
项目::更新gydF4y2Ba(gydF4y2Ba
intgydF4y2Bacollision_check,gydF4y2Ba
intgydF4y2Batimeout_sec,gydF4y2Ba
双gydF4y2Ba* out_nins_time_dist,gydF4y2Ba
双gydF4y2Bamm_step,gydF4y2Ba
双gydF4y2Badeg_step) {gydF4y2Ba
1993gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“更新2”gydF4y2Ba);gydF4y2Ba
1994gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
1995gydF4y2Ba
双gydF4y2Ba值[5];gydF4y2Ba
1996gydF4y2Ba值[0]= collision_check;gydF4y2Ba
1997gydF4y2Ba值[1]= mm_step;gydF4y2Ba
1998gydF4y2Ba值[2]= deg_step;gydF4y2Ba
2000gydF4y2Ba
_RDKgydF4y2Ba->_TIMEOUT = timeout_sec * 1000;gydF4y2Ba
2001gydF4y2Ba
双gydF4y2Bareturn_values [10];gydF4y2Ba
2002gydF4y2Ba
intgydF4y2Banvalues = 10;gydF4y2Ba
2003gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Array (return_values &nvalues);gydF4y2Ba
2004gydF4y2Ba
_RDKgydF4y2Ba- > _TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
2005gydF4y2BaQString readable_msg =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
2007gydF4y2Ba
双gydF4y2Baratio_ok = return_values [3];gydF4y2Ba
2008gydF4y2Ba
如果gydF4y2Ba(out_nins_time_dist ! =gydF4y2Ba
nullptrgydF4y2Ba)gydF4y2Ba
2010gydF4y2Baout_nins_time_dist [0] = return_values [0];gydF4y2Ba
2011gydF4y2Baout_nins_time_dist [1] = return_values [1];gydF4y2Ba
2012gydF4y2Baout_nins_time_dist [2] = return_values [2];gydF4y2Ba
2014gydF4y2Ba
返回gydF4y2Baratio_ok;gydF4y2Ba
2030gydF4y2Ba
intgydF4y2Ba
项目::InstructionListJointsgydF4y2Ba(QString &error_msg,gydF4y2Ba
tMatrix2DgydF4y2Ba* * joint_list,gydF4y2Ba
双gydF4y2Bamm_step,gydF4y2Ba
双gydF4y2Badeg_step,gydF4y2Ba
常量gydF4y2BaQString &save_to_file,gydF4y2Ba
保龄球gydF4y2Bacollision_check,gydF4y2Ba
intgydF4y2Baresult_flag,gydF4y2Ba
双gydF4y2Batime_step_s) {gydF4y2Ba
2032gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“G_ProgJointList”gydF4y2Ba);gydF4y2Ba
2033gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
2034gydF4y2Ba
双gydF4y2BaStep_mm_deg [5] = {mm_step, deg_step, collision_check ?1.0: 0.0, (double) result_flag, time_step_s};gydF4y2Ba
2035gydF4y2Ba
_RDKgydF4y2Ba- > _send_Array (step_mm_deg 5);gydF4y2Ba
2038gydF4y2Ba
如果gydF4y2Ba(save_to_file.isEmpty ()) {gydF4y2Ba
2039gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
""gydF4y2Ba);gydF4y2Ba
2040gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Matrix2D (joint_list);gydF4y2Ba
2041gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
2042gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (save_to_file);gydF4y2Ba
2043gydF4y2Bajoint_list =gydF4y2Ba
nullptrgydF4y2Ba;gydF4y2Ba
2045gydF4y2Ba
intgydF4y2Baerror_code =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
2046gydF4y2Ba
_RDKgydF4y2Ba- > _TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
2047gydF4y2Baerror_msg =gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
2049gydF4y2Ba
返回gydF4y2Baerror_code;gydF4y2Ba
2062gydF4y2Ba
_RDKgydF4y2Ba- > _send_Line (gydF4y2Ba
“ICMD”gydF4y2Ba);gydF4y2Ba
2063gydF4y2Ba
_RDKgydF4y2Ba- > _send_Item (gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
2066gydF4y2BaQString结果=gydF4y2Ba
_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
2068gydF4y2Ba
返回gydF4y2Ba结果;gydF4y2Ba
2077gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
2102gydF4y2Ba
RoboDK:: RoboDK (gydF4y2Ba
常量gydF4y2BaQString &robodk_ip,gydF4y2Ba
intgydF4y2Bacom_port,gydF4y2Ba
常量gydF4y2BaQString args,gydF4y2Ba
常量gydF4y2BaQString路径){gydF4y2Ba
2103gydF4y2Ba_COM =gydF4y2Ba
nullptrgydF4y2Ba;gydF4y2Ba
2104gydF4y2Ba_IP = robodk_ip;gydF4y2Ba
2105gydF4y2Ba_TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
2106gydF4y2Ba_PROCESS = 0;gydF4y2Ba
2107gydF4y2Ba_PORT = com_port;gydF4y2Ba
2108gydF4y2Ba_ROBODK_BIN =路径;gydF4y2Ba
2109gydF4y2Ba
如果gydF4y2Ba(_PORT < 0) {gydF4y2Ba
2110gydF4y2Ba_PORT = ROBODK_DEFAULT_PORT;gydF4y2Ba
2112gydF4y2Ba
如果gydF4y2Ba(_ROBODK_BIN.isEmpty ()) {gydF4y2Ba
2113gydF4y2Ba_ROBODK_BIN = ROBODK_DEFAULT_PATH_BIN;gydF4y2Ba
2115gydF4y2Ba_ARGUMENTS =参数;gydF4y2Ba
2116gydF4y2Ba
如果gydF4y2Ba(com_port > 0) {gydF4y2Ba
2117gydF4y2Ba_ARGUMENTS.append (gydF4y2Ba
" /端口= "gydF4y2Ba+ QString:号码(com_port));gydF4y2Ba
2119gydF4y2Ba_connect_smart ();gydF4y2Ba
2122gydF4y2BaRoboDK:: ~ RoboDK () {gydF4y2Ba
2123gydF4y2Ba_disconnect ();gydF4y2Ba
2126gydF4y2Baquint64 RoboDK: ProcessID () {gydF4y2Ba
2127gydF4y2Ba
如果gydF4y2Ba(_process == 0) {gydF4y2Ba
2128gydF4y2BaQString响应=gydF4y2Ba
命令gydF4y2Ba(gydF4y2Ba
“MainProcess_ID”gydF4y2Ba);gydF4y2Ba
2129gydF4y2Ba_PROCESS = response.toInt ();gydF4y2Ba
2131gydF4y2Ba
返回gydF4y2Ba_PROCESS;gydF4y2Ba
2134gydF4y2Baquint64 RoboDK: WindowID () {gydF4y2Ba
2135gydF4y2Baqint64 window_id;gydF4y2Ba
2136gydF4y2Ba
如果gydF4y2Ba(window_id == 0) {gydF4y2Ba
2137gydF4y2BaQString响应=gydF4y2Ba
命令gydF4y2Ba(gydF4y2Ba
“MainWindow_ID”gydF4y2Ba);gydF4y2Ba
2138gydF4y2Bawindow_id = response.toInt ();gydF4y2Ba
2140gydF4y2Ba
返回gydF4y2Bawindow_id;gydF4y2Ba
2143gydF4y2Ba
保龄球gydF4y2BaRoboDK:连接(){gydF4y2Ba
2144gydF4y2Ba
返回gydF4y2Ba_connected ();gydF4y2Ba
2147gydF4y2Ba
保龄球gydF4y2BaRoboDK: Connect () {gydF4y2Ba
2148gydF4y2Ba
返回gydF4y2Ba_connect ();gydF4y2Ba
2155gydF4y2Ba_disconnect ();gydF4y2Ba
2174gydF4y2Ba_check_connection ();gydF4y2Ba
2175gydF4y2Ba
如果gydF4y2Ba(itemtype < 0) {gydF4y2Ba
2176gydF4y2Ba_send_Line (gydF4y2Ba
“G_Item”gydF4y2Ba);gydF4y2Ba
2177gydF4y2Ba_send_Line(名称);gydF4y2Ba
2178gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
2179gydF4y2Ba_send_Line (gydF4y2Ba
“G_Item2”gydF4y2Ba);gydF4y2Ba
2180gydF4y2Ba_send_Line(名称);gydF4y2Ba
2181gydF4y2Ba_send_Int (itemtype);gydF4y2Ba
2183gydF4y2Ba
项gydF4y2Ba项= _recv_Item ();gydF4y2Ba
2184gydF4y2Ba_check_status ();gydF4y2Ba
2185gydF4y2Ba
返回gydF4y2Ba项;gydF4y2Ba
2195gydF4y2Ba_check_connection ();gydF4y2Ba
2196gydF4y2Ba
如果gydF4y2Ba(filter < 0) {gydF4y2Ba
2197gydF4y2Ba_send_Line (gydF4y2Ba
“G_List_Items”gydF4y2Ba);gydF4y2Ba
2198gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
2199gydF4y2Ba_send_Line (gydF4y2Ba
“G_List_Items_Type”gydF4y2Ba);gydF4y2Ba
2200gydF4y2Ba_send_Int(过滤器);gydF4y2Ba
2202gydF4y2Baqint32 numitems = _recv_Int();gydF4y2Ba
2203gydF4y2BaQStringList listnames;gydF4y2Ba
2204gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< numitems;我+ +){gydF4y2Ba
2205gydF4y2Balistnames.append (_recv_Line ());gydF4y2Ba
2207gydF4y2Ba_check_status ();gydF4y2Ba
2208gydF4y2Ba
返回gydF4y2Balistnames;gydF4y2Ba
2218gydF4y2Ba_check_connection ();gydF4y2Ba
2219gydF4y2Ba
如果gydF4y2Ba(filter < 0) {gydF4y2Ba
2220gydF4y2Ba_send_Line (gydF4y2Ba
“G_List_Items_ptr”gydF4y2Ba);gydF4y2Ba
2221gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
2222gydF4y2Ba_send_Line (gydF4y2Ba
“G_List_Items_Type_ptr”gydF4y2Ba);gydF4y2Ba
2223gydF4y2Ba_send_Int(过滤器);gydF4y2Ba
2225gydF4y2Ba
intgydF4y2Banumitems = _recv_Int ();gydF4y2Ba
2226gydF4y2BaQList < Item > listitem;gydF4y2Ba
2227gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< numitems;我+ +){gydF4y2Ba
2228gydF4y2Balistitems.append (_recv_Item ());gydF4y2Ba
2230gydF4y2Ba_check_status ();gydF4y2Ba
2231gydF4y2Ba
返回gydF4y2Balistitem;gydF4y2Ba
2244gydF4y2Ba_check_connection ();gydF4y2Ba
2245gydF4y2Ba_send_Line (gydF4y2Ba
“PickItem”gydF4y2Ba);gydF4y2Ba
2246gydF4y2Ba_send_Line(消息);gydF4y2Ba
2247gydF4y2Ba_send_Int (itemtype);gydF4y2Ba
2248gydF4y2Ba_timeout = 3600 * 1000;gydF4y2Ba
2249gydF4y2Ba
项gydF4y2Ba项= _recv_Item ();gydF4y2Ba
2250gydF4y2Ba_TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
2251gydF4y2Ba_check_status ();gydF4y2Ba
2252gydF4y2Ba
返回gydF4y2Ba项;gydF4y2Ba
2259gydF4y2Ba_check_connection ();gydF4y2Ba
2260gydF4y2Ba_send_Line (gydF4y2Ba
“提高”gydF4y2Ba);gydF4y2Ba
2261gydF4y2Ba_check_status ();gydF4y2Ba
2268gydF4y2Ba_check_connection ();gydF4y2Ba
2269gydF4y2Ba_send_Line (gydF4y2Ba
“隐藏”gydF4y2Ba);gydF4y2Ba
2270gydF4y2Ba_check_status ();gydF4y2Ba
2277gydF4y2Ba_check_connection ();gydF4y2Ba
2278gydF4y2Ba_send_Line (gydF4y2Ba
“退出”gydF4y2Ba);gydF4y2Ba
2279gydF4y2Ba_check_status ();gydF4y2Ba
2280gydF4y2Ba_disconnect ();gydF4y2Ba
2281gydF4y2Ba_PROCESS = 0;gydF4y2Ba
2286gydF4y2Ba_check_connection ();gydF4y2Ba
2287gydF4y2Ba_send_Line (gydF4y2Ba
“版本”gydF4y2Ba);gydF4y2Ba
2288gydF4y2BaQString appName = _recv_Line();gydF4y2Ba
2289gydF4y2Ba
intgydF4y2BabitArch = _recv_Int ();gydF4y2Ba
2290gydF4y2BaQString ver4 = _recv_Line();gydF4y2Ba
2291gydF4y2BaQString dateBuild = _recv_Line();gydF4y2Ba
2292gydF4y2Ba_check_status ();gydF4y2Ba
2293gydF4y2Ba
返回gydF4y2Baver4;gydF4y2Ba
2303gydF4y2Ba_check_connection ();gydF4y2Ba
2304gydF4y2Ba_send_Line (gydF4y2Ba
“S_WindowState”gydF4y2Ba);gydF4y2Ba
2305gydF4y2Ba_send_Int (windowstate);gydF4y2Ba
2306gydF4y2Ba_check_status ();gydF4y2Ba
2315gydF4y2Ba_check_connection ();gydF4y2Ba
2316gydF4y2Ba_send_Line (gydF4y2Ba
“S_RoboDK_Rights”gydF4y2Ba);gydF4y2Ba
2317gydF4y2Ba_send_Int(旗帜);gydF4y2Ba
2318gydF4y2Ba_check_status ();gydF4y2Ba
2327gydF4y2Ba_check_connection ();gydF4y2Ba
2328gydF4y2Ba_send_Line (gydF4y2Ba
“S_Item_Rights”gydF4y2Ba);gydF4y2Ba
2329gydF4y2Ba_send_Item(项);gydF4y2Ba
2330gydF4y2Ba_send_Int(旗帜);gydF4y2Ba
2331gydF4y2Ba_check_status ();gydF4y2Ba
2340gydF4y2Ba_check_connection ();gydF4y2Ba
2341gydF4y2Ba_send_Line (gydF4y2Ba
“S_Item_Rights”gydF4y2Ba);gydF4y2Ba
2342gydF4y2Ba_send_Item(项);gydF4y2Ba
2343gydF4y2Ba
intgydF4y2Ba旗帜= _recv_Int ();gydF4y2Ba
2344gydF4y2Ba_check_status ();gydF4y2Ba
2345gydF4y2Ba
返回gydF4y2Ba国旗;gydF4y2Ba
2354gydF4y2Ba_check_connection ();gydF4y2Ba
2355gydF4y2Ba
如果gydF4y2Ba(弹出)gydF4y2Ba
2357gydF4y2Ba_send_Line (gydF4y2Ba
“ShowMessage”gydF4y2Ba);gydF4y2Ba
2358gydF4y2Ba_send_Line(消息);gydF4y2Ba
2359gydF4y2Ba_timeout = 3600 * 1000;gydF4y2Ba
2360gydF4y2Ba_check_status ();gydF4y2Ba
2361gydF4y2Ba_TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
2363gydF4y2Ba
其他的gydF4y2Ba
2365gydF4y2Ba_send_Line (gydF4y2Ba
“ShowMessageStatus”gydF4y2Ba);gydF4y2Ba
2366gydF4y2Ba_send_Line(消息);gydF4y2Ba
2367gydF4y2Ba_check_status ();gydF4y2Ba
2377gydF4y2Ba_check_connection ();gydF4y2Ba
2378gydF4y2Ba_send_Line (gydF4y2Ba
“复制”gydF4y2Ba);gydF4y2Ba
2379gydF4y2Ba_send_Item (tocopy);gydF4y2Ba
2380gydF4y2Ba_check_status ();gydF4y2Ba
2389gydF4y2Ba_check_connection ();gydF4y2Ba
2390gydF4y2Ba_send_Line (gydF4y2Ba
“粘贴”gydF4y2Ba);gydF4y2Ba
2391gydF4y2Ba_send_Item (paste_to);gydF4y2Ba
2392gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2393gydF4y2Ba_check_status ();gydF4y2Ba
2394gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2404gydF4y2Ba_check_connection ();gydF4y2Ba
2405gydF4y2Ba_send_Line (gydF4y2Ba
“添加”gydF4y2Ba);gydF4y2Ba
2406gydF4y2Ba_send_Line(文件名);gydF4y2Ba
2407gydF4y2Ba_send_Item(父);gydF4y2Ba
2408gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2409gydF4y2Ba_check_status ();gydF4y2Ba
2410gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2419gydF4y2Ba_check_connection ();gydF4y2Ba
2420gydF4y2Ba_send_Line (gydF4y2Ba
“保存”gydF4y2Ba);gydF4y2Ba
2421gydF4y2Ba_send_Line(文件名);gydF4y2Ba
2422gydF4y2Ba_send_Item (itemsave);gydF4y2Ba
2423gydF4y2Ba_check_status ();gydF4y2Ba
2440gydF4y2Ba
双gydF4y2BacolorArray [4] = {0.6, 0.6, 0.8, 1.0};gydF4y2Ba
2441gydF4y2Ba
如果gydF4y2Ba(颜色! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
2442gydF4y2BacolorArray[0] =颜色- >gydF4y2Ba
rgydF4y2Ba;gydF4y2Ba
2443gydF4y2BacolorArray[1] =颜色- >gydF4y2Ba
ggydF4y2Ba;gydF4y2Ba
2444gydF4y2BacolorArray[2] =颜色- >gydF4y2Ba
bgydF4y2Ba;gydF4y2Ba
2445gydF4y2BacolorArray[3] =颜色- >gydF4y2Ba
一个gydF4y2Ba;gydF4y2Ba
2447gydF4y2Ba_check_connection ();gydF4y2Ba
2448gydF4y2Ba_send_Line (gydF4y2Ba
“AddShape3”gydF4y2Ba);gydF4y2Ba
2449gydF4y2Ba_send_Matrix2D (trianglePoints);gydF4y2Ba
2450gydF4y2Ba_send_Item(遭受);gydF4y2Ba
2451gydF4y2Ba_send_Int (shapeOverride ?1: 0);gydF4y2Ba
2452gydF4y2Ba_send_Array (colorArray 4);gydF4y2Ba
2453gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2454gydF4y2Ba_check_status ();gydF4y2Ba
2455gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2476gydF4y2Ba_check_connection ();gydF4y2Ba
2477gydF4y2Ba_send_Line (gydF4y2Ba
“AddWire”gydF4y2Ba);gydF4y2Ba
2478gydF4y2Ba_send_Matrix2D (curvePoints);gydF4y2Ba
2479gydF4y2Ba_send_Item (referenceObject);gydF4y2Ba
2480gydF4y2Ba_send_Int (addToRef ?1:0);gydF4y2Ba
2481gydF4y2Ba_send_Int (ProjectionType);gydF4y2Ba
2482gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2483gydF4y2Ba_check_status ();gydF4y2Ba
2484gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2497gydF4y2Ba_check_connection ();gydF4y2Ba
2498gydF4y2Ba_send_Line (gydF4y2Ba
“AddPoints”gydF4y2Ba);gydF4y2Ba
2499gydF4y2Ba_send_Matrix2D(点);gydF4y2Ba
2500gydF4y2Ba_send_Item (referenceObject);gydF4y2Ba
2501gydF4y2Ba_send_Int (addToRef ?1: 0);gydF4y2Ba
2502gydF4y2Ba_send_Int (ProjectionType);gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2503gydF4y2Ba_check_status ();gydF4y2Ba
2504gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2509gydF4y2Ba_check_connection ();gydF4y2Ba
2510gydF4y2Ba_send_Line (gydF4y2Ba
“ProjectPoints”gydF4y2Ba);gydF4y2Ba
2511gydF4y2Ba_send_Matrix2D(点);gydF4y2Ba
2512gydF4y2Ba_send_Item (objectProject);gydF4y2Ba
2513gydF4y2Ba_send_Int (ProjectionType);gydF4y2Ba
2514gydF4y2Ba_recv_Matrix2D(预测);gydF4y2Ba
2515gydF4y2Ba_check_status ();gydF4y2Ba
2525gydF4y2Ba_check_connection ();gydF4y2Ba
2526gydF4y2Ba_send_Line (gydF4y2Ba
“NewStation”gydF4y2Ba);gydF4y2Ba
2527gydF4y2Ba_send_Line(名称);gydF4y2Ba
2528gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2529gydF4y2Ba_check_status ();gydF4y2Ba
2530gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2540gydF4y2Ba_check_connection ();gydF4y2Ba
2541gydF4y2Ba_send_Line (gydF4y2Ba
“RemoveStn”gydF4y2Ba);gydF4y2Ba
2542gydF4y2Ba_check_status ();gydF4y2Ba
2553gydF4y2Ba_check_connection ();gydF4y2Ba
2554gydF4y2Ba_send_Line (gydF4y2Ba
“Add_TARGET”gydF4y2Ba);gydF4y2Ba
2555gydF4y2Ba_send_Line(名称);gydF4y2Ba
2556gydF4y2Ba_send_Item (itemparent);gydF4y2Ba
2557gydF4y2Ba_send_Item (itemrobot);gydF4y2Ba
2558gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2559gydF4y2Ba_check_status ();gydF4y2Ba
2560gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2570gydF4y2Ba_check_connection ();gydF4y2Ba
2571gydF4y2Ba_send_Line (gydF4y2Ba
“Add_FRAME”gydF4y2Ba);gydF4y2Ba
2572gydF4y2Ba_send_Line(名称);gydF4y2Ba
2573gydF4y2Ba_send_Item (itemparent);gydF4y2Ba
2574gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2575gydF4y2Ba_check_status ();gydF4y2Ba
2576gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2586gydF4y2Ba_check_connection ();gydF4y2Ba
2587gydF4y2Ba_send_Line (gydF4y2Ba
“Add_PROG”gydF4y2Ba);gydF4y2Ba
2588gydF4y2Ba_send_Line(名称);gydF4y2Ba
2589gydF4y2Ba_send_Item (itemrobot);gydF4y2Ba
2590gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2591gydF4y2Ba_check_status ();gydF4y2Ba
2592gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2605gydF4y2Ba_check_connection ();gydF4y2Ba
2606gydF4y2Ba_send_Line (gydF4y2Ba
“Add_MACHINING”gydF4y2Ba);gydF4y2Ba
2607gydF4y2Ba_send_Line(名称);gydF4y2Ba
2608gydF4y2Ba_send_Item (itemrobot);gydF4y2Ba
2609gydF4y2Ba
项gydF4y2Banewitem = _recv_Item ();gydF4y2Ba
2610gydF4y2Ba_check_status ();gydF4y2Ba
2611gydF4y2Ba
返回gydF4y2Banewitem;gydF4y2Ba
2618gydF4y2Ba_check_connection ();gydF4y2Ba
2619gydF4y2Ba_send_Line (gydF4y2Ba
“G_AllStn”gydF4y2Ba);gydF4y2Ba
2620gydF4y2Ba
intgydF4y2Banstn = _recv_Int ();gydF4y2Ba
2621gydF4y2BaQList < Item > * listStn =gydF4y2Ba
新gydF4y2BaQList < Item > ();gydF4y2Ba
2622gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2BaI = 0; I < nstn;i++){gydF4y2Ba
2623gydF4y2Ba
项gydF4y2Ba站= _recv_Item ();gydF4y2Ba
2624gydF4y2BalistStn - >附加(站);gydF4y2Ba
2626gydF4y2Ba_check_status ();gydF4y2Ba
2627gydF4y2Ba
返回gydF4y2Ba* listStn;gydF4y2Ba
2636gydF4y2Ba_check_connection ();gydF4y2Ba
2637gydF4y2Ba_send_Line (gydF4y2Ba
“G_ActiveStn”gydF4y2Ba);gydF4y2Ba
2638gydF4y2Ba
项gydF4y2Ba站= _recv_Item ();gydF4y2Ba
2639gydF4y2Ba_check_status ();gydF4y2Ba
2640gydF4y2Ba
返回gydF4y2Ba站;gydF4y2Ba
2648gydF4y2Ba_check_connection ();gydF4y2Ba
2649gydF4y2Ba_send_Line (gydF4y2Ba
“S_ActiveStn”gydF4y2Ba);gydF4y2Ba
2650gydF4y2Ba_send_Item(站);gydF4y2Ba
2651gydF4y2Ba_check_status ();gydF4y2Ba
2662gydF4y2Ba
返回gydF4y2Ba
RunCodegydF4y2Ba(function_w_paramsgydF4y2Ba
真正的gydF4y2Ba);gydF4y2Ba
2672gydF4y2Ba_check_connection ();gydF4y2Ba
2673gydF4y2Ba_send_Line (gydF4y2Ba
“RunCode”gydF4y2Ba);gydF4y2Ba
2674gydF4y2Ba_send_Int (code_is_fcn_call ?1: 0);gydF4y2Ba
2675gydF4y2Ba_send_Line(代码);gydF4y2Ba
2676gydF4y2Ba
intgydF4y2Baprog_status = _recv_Int ();gydF4y2Ba
2677gydF4y2Ba_check_status ();gydF4y2Ba
2678gydF4y2Ba
返回gydF4y2Baprog_status;gydF4y2Ba
2687gydF4y2Ba_check_connection ();gydF4y2Ba
2688gydF4y2Ba_send_Line (gydF4y2Ba
“RunMessage”gydF4y2Ba);gydF4y2Ba
2689gydF4y2Ba_send_Int (message_is_comment ?1: 0);gydF4y2Ba
2690gydF4y2Ba_send_Line(消息);gydF4y2Ba
2691gydF4y2Ba_check_status ();gydF4y2Ba
2699gydF4y2Ba
保龄球gydF4y2Baauto_render = ! always_render;gydF4y2Ba
2700gydF4y2Ba_check_connection ();gydF4y2Ba
2701gydF4y2Ba_send_Line (gydF4y2Ba
“呈现”gydF4y2Ba);gydF4y2Ba
2702gydF4y2Ba_send_Int (auto_render ?1: 0);gydF4y2Ba
2703gydF4y2Ba_check_status ();gydF4y2Ba
2712gydF4y2Ba_check_connection ();gydF4y2Ba
2713gydF4y2Ba_send_Line (gydF4y2Ba
“刷新”gydF4y2Ba);gydF4y2Ba
2714gydF4y2Ba_send_Int (0);gydF4y2Ba
2715gydF4y2Ba_check_status ();gydF4y2Ba
2725gydF4y2Ba_check_connection ();gydF4y2Ba
2726gydF4y2Ba_send_Line (gydF4y2Ba
“IsInside”gydF4y2Ba);gydF4y2Ba
2727gydF4y2Ba_send_Item (object_inside);gydF4y2Ba
2728gydF4y2Ba_send_Item (object_parent);gydF4y2Ba
2729gydF4y2Ba
intgydF4y2Ba在= _recv_Int ();gydF4y2Ba
2730gydF4y2Ba_check_status ();gydF4y2Ba
2731gydF4y2Ba
返回gydF4y2Ba内> 0;gydF4y2Ba
2740gydF4y2Ba_check_connection ();gydF4y2Ba
2741gydF4y2Ba_send_Line (gydF4y2Ba
“Collision_SetState”gydF4y2Ba);gydF4y2Ba
2742gydF4y2Ba_send_Int (check_state);gydF4y2Ba
2743gydF4y2Ba
intgydF4y2Bancollisions = _recv_Int ();gydF4y2Ba
2744gydF4y2Ba_check_status ();gydF4y2Ba
2745gydF4y2Ba
返回gydF4y2Bancollisions;gydF4y2Ba
2759gydF4y2Ba_check_connection ();gydF4y2Ba
2760gydF4y2Ba_send_Line (gydF4y2Ba
“Collision_SetPair”gydF4y2Ba);gydF4y2Ba
2761gydF4y2Ba_send_Item (item1);gydF4y2Ba
2762gydF4y2Ba_send_Item(第二条);gydF4y2Ba
2763gydF4y2Ba_send_Int (id1);gydF4y2Ba
2764gydF4y2Ba_send_Int (id2);gydF4y2Ba
2765gydF4y2Ba_send_Int (check_state);gydF4y2Ba
2766gydF4y2Ba
intgydF4y2Ba成功= _recv_Int ();gydF4y2Ba
2767gydF4y2Ba_check_status ();gydF4y2Ba
2768gydF4y2Ba
返回gydF4y2Ba成功> 0;gydF4y2Ba
2776gydF4y2Ba_check_connection ();gydF4y2Ba
2777gydF4y2Ba_send_Line (gydF4y2Ba
“碰撞”gydF4y2Ba);gydF4y2Ba
2778gydF4y2Ba
intgydF4y2Bancollisions = _recv_Int ();gydF4y2Ba
2779gydF4y2Ba_check_status ();gydF4y2Ba
2780gydF4y2Ba
返回gydF4y2Bancollisions;gydF4y2Ba
2790gydF4y2Ba_check_connection ();gydF4y2Ba
2791gydF4y2Ba_send_Line (gydF4y2Ba
“碰撞”gydF4y2Ba);gydF4y2Ba
2792gydF4y2Ba_send_Item (item1);gydF4y2Ba
2793gydF4y2Ba_send_Item(第二条);gydF4y2Ba
2794gydF4y2Ba
intgydF4y2Bancollisions = _recv_Int ();gydF4y2Ba
2795gydF4y2Ba_check_status ();gydF4y2Ba
2796gydF4y2Ba
返回gydF4y2Bancollisions;gydF4y2Ba
2801gydF4y2Ba_check_connection ();gydF4y2Ba
2802gydF4y2Ba_send_Line (gydF4y2Ba
“碰撞项目”gydF4y2Ba);gydF4y2Ba
2803gydF4y2Ba
intgydF4y2Banitems = _recv_Int ();gydF4y2Ba
2804gydF4y2BaitemList = QList
- ();gydF4y2Ba
2805gydF4y2Ba
如果gydF4y2Ba(! link_id_list.isEmpty ()) {gydF4y2Ba
2806gydF4y2Balink_id_list.clear ();gydF4y2Ba
2808gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nitems;我+ +){gydF4y2Ba
2809gydF4y2BaitemList.append (_recv_Item ());gydF4y2Ba
2810gydF4y2Ba
intgydF4y2BalinkId = _recv_Int ();gydF4y2Ba
2811gydF4y2Ba
如果gydF4y2Ba(! link_id_list.isEmpty ()) {gydF4y2Ba
2812gydF4y2Balink_id_list.append (linkId);gydF4y2Ba
2814gydF4y2Ba
intgydF4y2BacollisionTimes = _recv_Int ();gydF4y2Ba
2816gydF4y2Ba_check_status ();gydF4y2Ba
2817gydF4y2Ba
返回gydF4y2BaitemList;gydF4y2Ba
2825gydF4y2Ba_check_connection ();gydF4y2Ba
2826gydF4y2Ba_send_Line (gydF4y2Ba
“SimulateSpeed”gydF4y2Ba);gydF4y2Ba
2827gydF4y2Ba_send_Int ((gydF4y2Ba
intgydF4y2Ba)(速度* 1000.0));gydF4y2Ba
2828gydF4y2Ba_check_status ();gydF4y2Ba
2836gydF4y2Ba_check_connection ();gydF4y2Ba
2837gydF4y2Ba_send_Line (gydF4y2Ba
“GetSimulateSpeed”gydF4y2Ba);gydF4y2Ba
2838gydF4y2Ba
双gydF4y2Baspeed = ((double)_recv_Int()) / 1000.0;gydF4y2Ba
2839gydF4y2Ba_check_status ();gydF4y2Ba
2840gydF4y2Ba
返回gydF4y2Ba速度;gydF4y2Ba
2853gydF4y2Ba_check_connection ();gydF4y2Ba
2854gydF4y2Ba_send_Line (gydF4y2Ba
“S_RunMode”gydF4y2Ba);gydF4y2Ba
2855gydF4y2Ba_send_Int (run_mode);gydF4y2Ba
2856gydF4y2Ba_check_status ();gydF4y2Ba
2868gydF4y2Ba_check_connection ();gydF4y2Ba
2869gydF4y2Ba_send_Line (gydF4y2Ba
“G_RunMode”gydF4y2Ba);gydF4y2Ba
2870gydF4y2Ba
intgydF4y2Barunmode = _recv_Int ();gydF4y2Ba
2871gydF4y2Ba_check_status ();gydF4y2Ba
2872gydF4y2Ba
返回gydF4y2Barunmode;gydF4y2Ba
2881gydF4y2Ba_check_connection ();gydF4y2Ba
2882gydF4y2Ba_send_Line (gydF4y2Ba
“G_Params”gydF4y2Ba);gydF4y2Ba
2883gydF4y2BaQList < QPair < QString, QString > > paramlist;gydF4y2Ba
2884gydF4y2Ba
intgydF4y2Banparam = _recv_Int ();gydF4y2Ba
2885gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nparam;我+ +){gydF4y2Ba
2886gydF4y2BaQString参数= _recv_Line();gydF4y2Ba
2887gydF4y2BaQString值= _recv_Line();gydF4y2Ba
2888gydF4y2Baparamlist。一个ppend(qMakePair(param, value));
2890gydF4y2Ba_check_status ();gydF4y2Ba
2891gydF4y2Ba
返回gydF4y2Baparamlist;gydF4y2Ba
2906gydF4y2Ba_check_connection ();gydF4y2Ba
2907gydF4y2Ba_send_Line (gydF4y2Ba
“G_Param”gydF4y2Ba);gydF4y2Ba
2908gydF4y2Ba_send_Line(参数);gydF4y2Ba
2909gydF4y2BaQString值= _recv_Line();gydF4y2Ba
2910gydF4y2Ba
如果gydF4y2Ba(value.startsWith (gydF4y2Ba
“未知”gydF4y2Ba)) {gydF4y2Ba
2911gydF4y2Ba值=gydF4y2Ba
""gydF4y2Ba;gydF4y2Ba
2913gydF4y2Ba_check_status ();gydF4y2Ba
2914gydF4y2Ba
返回gydF4y2Ba价值;gydF4y2Ba
2925gydF4y2Ba_check_connection ();gydF4y2Ba
2926gydF4y2Ba_send_Line (gydF4y2Ba
“S_Param”gydF4y2Ba);gydF4y2Ba
2927gydF4y2Ba_send_Line(参数);gydF4y2Ba
2928gydF4y2Ba_send_Line(价值);gydF4y2Ba
2929gydF4y2Ba_check_status ();gydF4y2Ba
2939gydF4y2Ba_check_connection ();gydF4y2Ba
2940gydF4y2Ba_send_Line (gydF4y2Ba
“SCMD”gydF4y2Ba);gydF4y2Ba
2941gydF4y2Ba_send_Line (cmd);gydF4y2Ba
2942gydF4y2Ba_send_Line(价值);gydF4y2Ba
2943gydF4y2BaQString答案= _recv_Line();gydF4y2Ba
2944gydF4y2Ba_check_status ();gydF4y2Ba
2945gydF4y2Ba
返回gydF4y2Ba答案;gydF4y2Ba
2950gydF4y2Ba_check_connection ();gydF4y2Ba
2951gydF4y2Ba_send_Line (gydF4y2Ba
“MeasLT”gydF4y2Ba);gydF4y2Ba
2952gydF4y2Ba_send_XYZ(估计);gydF4y2Ba
2953gydF4y2Ba_send_Int(搜索?1: 0);gydF4y2Ba
2954gydF4y2Ba_recv_XYZ(某某);gydF4y2Ba
2955gydF4y2Ba_check_status ();gydF4y2Ba
2956gydF4y2Ba
如果gydF4y2Ba(xyz [0] * xyz [0] + xyz [1] * xyz [1] + xyz [2] * xyz [2] < 0.0001) {gydF4y2Ba
2957gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
2960gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
2965gydF4y2Ba
intgydF4y2Banitems = qMin (itemList.length (), collidedList.length ());gydF4y2Ba
2966gydF4y2Ba
如果gydF4y2Ba(robot_link_id ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
2967gydF4y2Banitems = qMin(nitems, robot_link_id->length());gydF4y2Ba
2969gydF4y2Ba_check_connection ();gydF4y2Ba
2970gydF4y2Ba_send_Line (gydF4y2Ba
“ShowAsCollidedList”gydF4y2Ba);gydF4y2Ba
2971gydF4y2Ba_send_Int (nitems);gydF4y2Ba
2972gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nitems;我+ +){gydF4y2Ba
2973gydF4y2Ba[我]_send_Item (itemList);gydF4y2Ba
2974gydF4y2Ba_send_Int (collidedList(我)?1: 0);gydF4y2Ba
2975gydF4y2Ba
intgydF4y2Balink_id = 0;gydF4y2Ba
2976gydF4y2Ba
如果gydF4y2Ba(robot_link_id ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
2977gydF4y2Balink_id = robot_link_id - > (i);gydF4y2Ba
2979gydF4y2Ba_send_Int (link_id);gydF4y2Ba
2981gydF4y2Ba_check_status ();gydF4y2Ba
2998gydF4y2Ba_check_connection ();gydF4y2Ba
2999gydF4y2Ba_send_Line (gydF4y2Ba
“CalibTCP2”gydF4y2Ba);gydF4y2Ba
3000gydF4y2Ba_send_Matrix2D (poses_joints);gydF4y2Ba
3001gydF4y2Ba_send_Int(格式);gydF4y2Ba
3002gydF4y2Ba_send_Int(算法);gydF4y2Ba
3003gydF4y2Ba_send_Item(机器人);gydF4y2Ba
3004gydF4y2Ba
intgydF4y2Banxyz = 3;gydF4y2Ba
3005gydF4y2Ba_recv_Array (tcp_xyz &nxyz);gydF4y2Ba
3006gydF4y2Ba
如果gydF4y2Ba(error_stats ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3007gydF4y2Ba_recv_Array (error_stats);gydF4y2Ba
3008gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3009gydF4y2Ba
双gydF4y2Baerrors_ignored [20];gydF4y2Ba
3010gydF4y2Ba_recv_Array (errors_ignored);gydF4y2Ba
3013gydF4y2Ba_recv_Matrix2D (&error_graph);gydF4y2Ba
3015gydF4y2Ba_check_status ();gydF4y2Ba
3027gydF4y2Ba_check_connection ();gydF4y2Ba
3028gydF4y2Ba_send_Line (gydF4y2Ba
“CalibFrame”gydF4y2Ba);gydF4y2Ba
3029gydF4y2Ba_send_Matrix2D (poses_joints);gydF4y2Ba
3030gydF4y2Ba_send_Int (use_joints ?1: 0);gydF4y2Ba
3031gydF4y2Ba_send_Int(方法);gydF4y2Ba
3032gydF4y2Ba_send_Item(机器人);gydF4y2Ba
3033gydF4y2Ba
垫gydF4y2Bareference_pose = _recv_Pose ();gydF4y2Ba
3034gydF4y2Ba
双gydF4y2Baerror_stats [20];gydF4y2Ba
3035gydF4y2Ba_recv_Array (error_stats);gydF4y2Ba
3036gydF4y2Ba_check_status ();gydF4y2Ba
3037gydF4y2Ba
返回gydF4y2Bareference_pose;gydF4y2Ba
3042gydF4y2Ba_check_connection ();gydF4y2Ba
3043gydF4y2Ba_send_Line (gydF4y2Ba
“ProgramStart”gydF4y2Ba);gydF4y2Ba
3044gydF4y2Ba_send_Line (progname);gydF4y2Ba
3045gydF4y2Ba_send_Line (defaultfolder);gydF4y2Ba
3046gydF4y2Ba_send_Line(后处理程序);gydF4y2Ba
3047gydF4y2Ba_send_Item(机器人);gydF4y2Ba
3048gydF4y2Ba
intgydF4y2Ba错误= _recv_Int ();gydF4y2Ba
3049gydF4y2Ba_check_status ();gydF4y2Ba
3050gydF4y2Ba
返回gydF4y2Ba错误;gydF4y2Ba
3058gydF4y2Ba_check_connection ();gydF4y2Ba
3059gydF4y2Ba_send_Line (gydF4y2Ba
“S_ViewPose”gydF4y2Ba);gydF4y2Ba
3060gydF4y2Ba_send_Pose(构成);gydF4y2Ba
3061gydF4y2Ba_check_status ();gydF4y2Ba
3069gydF4y2Ba_check_connection ();gydF4y2Ba
3070gydF4y2Ba_send_Line (gydF4y2Ba
“G_ViewPose”gydF4y2Ba);gydF4y2Ba
3071gydF4y2Ba
垫gydF4y2Ba构成= _recv_Pose ();gydF4y2Ba
3072gydF4y2Ba_check_status ();gydF4y2Ba
3073gydF4y2Ba
返回gydF4y2Ba构成;gydF4y2Ba
3107gydF4y2Ba_check_connection ();gydF4y2Ba
3108gydF4y2Ba_send_Line (gydF4y2Ba
“Cam2D_PtrAdd”gydF4y2Ba);gydF4y2Ba
3109gydF4y2Ba_send_Item (item_object);gydF4y2Ba
3110gydF4y2Ba_send_Item (cam_item);gydF4y2Ba
3111gydF4y2Ba_send_Line (cam_params);gydF4y2Ba
3112gydF4y2Ba
项gydF4y2Bacam_item_return = _recv_Item ();gydF4y2Ba
3113gydF4y2Ba_check_status ();gydF4y2Ba
3114gydF4y2Ba
返回gydF4y2Bacam_item_return;gydF4y2Ba
3117gydF4y2Ba_check_connection ();gydF4y2Ba
3118gydF4y2Ba_send_Line (gydF4y2Ba
“Cam2D_PtrSnapshot”gydF4y2Ba);gydF4y2Ba
3119gydF4y2Ba_send_Item (cam_item);gydF4y2Ba
3120gydF4y2Ba_send_Line (file_save_img);gydF4y2Ba
3121gydF4y2Ba_send_Line (params);gydF4y2Ba
3122gydF4y2Ba_timeout = 3600 * 1000;gydF4y2Ba
3123gydF4y2Ba
intgydF4y2Ba状态= _recv_Int ();gydF4y2Ba
3124gydF4y2Ba_TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
3125gydF4y2Ba_check_status ();gydF4y2Ba
3126gydF4y2Ba
返回gydF4y2Ba状态;gydF4y2Ba
3130gydF4y2Ba_check_connection ();gydF4y2Ba
3131gydF4y2Ba_send_Line (gydF4y2Ba
“Cam2D_PtrSetParams”gydF4y2Ba);gydF4y2Ba
3132gydF4y2Ba_send_Item (cam_item);gydF4y2Ba
3133gydF4y2Ba_send_Line (params);gydF4y2Ba
3134gydF4y2Ba
intgydF4y2Ba状态= _recv_Int ();gydF4y2Ba
3135gydF4y2Ba_check_status ();gydF4y2Ba
3136gydF4y2Ba
返回gydF4y2Ba状态;gydF4y2Ba
3141gydF4y2Ba_check_connection ();gydF4y2Ba
3142gydF4y2Ba_send_Line (gydF4y2Ba
“Proj2d3d”gydF4y2Ba);gydF4y2Ba
3143gydF4y2Ba_send_Int (x);gydF4y2Ba
3144gydF4y2Ba_send_Int (y);gydF4y2Ba
3145gydF4y2Ba
intgydF4y2Ba选择= _recv_Int ();gydF4y2Ba
3146gydF4y2Ba
项gydF4y2Ba设置selectedItem = _recv_Item ();gydF4y2Ba
3148gydF4y2Ba_recv_XYZ(某某);gydF4y2Ba
3149gydF4y2Ba
如果gydF4y2Ba(xyzStation ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3150gydF4y2BaxyzStation [0] = xyz [0];gydF4y2Ba
3151gydF4y2BaxyzStation [1] = xyz [1];gydF4y2Ba
3152gydF4y2BaxyzStation [2] = xyz [2];gydF4y2Ba
3154gydF4y2Ba_check_status ();gydF4y2Ba
3155gydF4y2Ba
返回gydF4y2Ba设置selectedItem;gydF4y2Ba
3167gydF4y2Ba_check_connection ();gydF4y2Ba
3168gydF4y2Ba_send_Line (gydF4y2Ba
“G_License”gydF4y2Ba);gydF4y2Ba
3169gydF4y2BaQString许可证= _recv_Line();gydF4y2Ba
3170gydF4y2Ba_check_status ();gydF4y2Ba
3171gydF4y2Ba
返回gydF4y2Ba执照;gydF4y2Ba
3179gydF4y2Ba_check_connection ();gydF4y2Ba
3180gydF4y2Ba_send_Line (gydF4y2Ba
“G_Selection”gydF4y2Ba);gydF4y2Ba
3181gydF4y2Ba
intgydF4y2Banitems = _recv_Int ();gydF4y2Ba
3182gydF4y2BaQList < Item > list_items;gydF4y2Ba
3183gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nitems;我+ +){gydF4y2Ba
3184gydF4y2Balist_items.append (_recv_Item ());gydF4y2Ba
3186gydF4y2Ba_check_status ();gydF4y2Ba
3187gydF4y2Ba
返回gydF4y2Balist_items;gydF4y2Ba
3195gydF4y2Ba_check_connection ();gydF4y2Ba
3196gydF4y2Ba_send_Line (gydF4y2Ba
“S_Selection”gydF4y2Ba);gydF4y2Ba
3197gydF4y2Ba_send_Int (list_items.length ());gydF4y2Ba
3198gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< list_items.length ();我+ +){gydF4y2Ba
3199gydF4y2Ba_send_Item (list_items[我]);gydF4y2Ba
3201gydF4y2Ba_check_status ();gydF4y2Ba
3212gydF4y2Ba_check_connection ();gydF4y2Ba
3213gydF4y2Ba
如果gydF4y2Ba(中心= =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3214gydF4y2Ba_send_Line (gydF4y2Ba
“Popup_ProgISO9283”gydF4y2Ba);gydF4y2Ba
3215gydF4y2Ba_send_Item(机器人);gydF4y2Ba
3216gydF4y2Ba_timeout = 3600 * 1000;gydF4y2Ba
3217gydF4y2Baiso_program = _recv_Item ();gydF4y2Ba
3218gydF4y2Ba_TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
3219gydF4y2Ba_check_status ();gydF4y2Ba
3220gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3221gydF4y2Ba_send_Line (gydF4y2Ba
“Popup_ProgISO9283_Param”gydF4y2Ba);gydF4y2Ba
3222gydF4y2Ba_send_Item(机器人);gydF4y2Ba
3223gydF4y2Ba
双gydF4y2Ba值[5];gydF4y2Ba
3224gydF4y2Ba值[0]=[0]中心;gydF4y2Ba
3225gydF4y2Ba值[1]=[1]中心;gydF4y2Ba
3226gydF4y2Ba值[2]=[2]中心;gydF4y2Ba
3227gydF4y2Ba值[3]=侧;gydF4y2Ba
3228gydF4y2Ba[4] = blocking ?1: 0;gydF4y2Ba
3229gydF4y2Ba_send_Array(价值观、4);gydF4y2Ba
3230gydF4y2Ba
如果gydF4y2Ba(屏蔽){gydF4y2Ba
3231gydF4y2Ba_timeout = 3600 * 1000;gydF4y2Ba
3232gydF4y2Baiso_program = _recv_Item ();gydF4y2Ba
3233gydF4y2Ba_TIMEOUT = ROBODK_API_TIMEOUT;gydF4y2Ba
3234gydF4y2Ba_check_status ();gydF4y2Ba
3237gydF4y2Ba
返回gydF4y2Baiso_program;gydF4y2Ba
3244gydF4y2Ba
如果gydF4y2Ba(! _check_connection ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3245gydF4y2Ba
如果gydF4y2Ba(!_send_Line (gydF4y2Ba
“FileRecvBin”gydF4y2Ba)) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3246gydF4y2BaQFile文件(path_file_local);gydF4y2Ba
3247gydF4y2Ba
如果gydF4y2Ba(! _send_Line (file_remote)) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3248gydF4y2Ba
intgydF4y2Banbytes = file.size ();gydF4y2Ba
3249gydF4y2Ba
如果gydF4y2Ba(! _send_Int (nbytes)) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3250gydF4y2Ba
如果gydF4y2Ba(! _send_Item (attach_to)) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3251gydF4y2Ba
如果gydF4y2Ba(!_send_Int (load_file ?1: 0)) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3252gydF4y2Ba
如果gydF4y2Ba(! _check_status ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3253gydF4y2Ba
intgydF4y2Basz_sent = 0;gydF4y2Ba
3254gydF4y2Ba
如果gydF4y2Ba(! file.open (QFile::只读的)){gydF4y2Ba
3255gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3257gydF4y2Ba
而gydF4y2Ba(gydF4y2Ba
真正的gydF4y2Ba) {gydF4y2Ba
3258gydF4y2BaQByteArray缓冲区(以(1024));gydF4y2Ba
3259gydF4y2Ba
如果gydF4y2Ba(buffer.size () = = 0) {gydF4y2Ba
3260gydF4y2Ba
打破gydF4y2Ba;gydF4y2Ba
3263gydF4y2Basz_sent + = _COM - >写(缓冲);gydF4y2Ba
3264gydF4y2BaqDebug () <
“发送文件”gydF4y2Ba<< path_file_local << 100*sz_sent/nbytes;gydF4y2Ba
3266gydF4y2Bafile.close ();gydF4y2Ba
3267gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3271gydF4y2Ba
如果gydF4y2Ba(! _check_connection ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3272gydF4y2Ba
如果gydF4y2Ba(!_send_Line (gydF4y2Ba
“FileSendBin”gydF4y2Ba)) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3273gydF4y2Ba
如果gydF4y2Ba(! _send_Item(站)){gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3274gydF4y2Ba
如果gydF4y2Ba(! _send_Line (path_file_remote)) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3275gydF4y2Ba
intgydF4y2Banbytes = _recv_Int ();gydF4y2Ba
3276gydF4y2Ba
intgydF4y2Ba剩余= nbytes;gydF4y2Ba
3277gydF4y2BaQFile文件(path_file_local);gydF4y2Ba
3278gydF4y2Ba
如果gydF4y2Ba(! file.open (QFile:: WriteOnly)) {gydF4y2Ba
3279gydF4y2BaqDebug () <
“无法打开文件进行写入”gydF4y2Ba< < path_file_local;gydF4y2Ba
3280gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3282gydF4y2Ba
而gydF4y2Ba(剩余> 0){gydF4y2Ba
3283gydF4y2BaQByteArray缓冲区(_COM - >读取(qMin(剩余1024)));gydF4y2Ba
3284gydF4y2Ba剩余的- = buffer.size ();gydF4y2Ba
3285gydF4y2Bafile.write(缓冲);gydF4y2Ba
3287gydF4y2Bafile.close ();gydF4y2Ba
3288gydF4y2Ba
如果gydF4y2Ba(! _check_status ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3289gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3293gydF4y2Ba
保龄球gydF4y2BaRoboDK::EmbedWindow(QString window_name, QString docked_name,gydF4y2Ba
intgydF4y2Basize_w,gydF4y2Ba
intgydF4y2Basize_h quint64 pid,gydF4y2Ba
intgydF4y2Baarea_add,gydF4y2Ba
intgydF4y2Baarea_allowed,gydF4y2Ba
intgydF4y2Ba超时)gydF4y2Ba
3295gydF4y2Ba
如果gydF4y2Ba(! _check_connection ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3296gydF4y2Ba
如果gydF4y2Ba(docked_name = =gydF4y2Ba
""gydF4y2Ba) {gydF4y2Ba
3297gydF4y2Badocked_name = window_name;gydF4y2Ba
3299gydF4y2Ba_check_connection ();gydF4y2Ba
3300gydF4y2Ba_send_Line (gydF4y2Ba
“WinProcDock”gydF4y2Ba);gydF4y2Ba
3301gydF4y2Ba_send_Line (docked_name);gydF4y2Ba
3302gydF4y2Ba_send_Line (window_name);gydF4y2Ba
3303gydF4y2Ba
双gydF4y2BasizeArray[2] = {(double)size_w, (gydF4y2Ba
双gydF4y2Ba) size_h};gydF4y2Ba
3304gydF4y2Ba_send_Array (sizeArray 2);gydF4y2Ba
3305gydF4y2Ba_send_Line (QString:数量(pid));gydF4y2Ba
3306gydF4y2Ba_send_Int (area_allowed);gydF4y2Ba
3307gydF4y2Ba_send_Int (area_add);gydF4y2Ba
3308gydF4y2Ba_send_Int(超时);gydF4y2Ba
3309gydF4y2Ba
intgydF4y2Ba结果= _recv_Int ();gydF4y2Ba
3310gydF4y2Ba_check_status ();gydF4y2Ba
3311gydF4y2Ba
返回gydF4y2Ba结果> 0;gydF4y2Ba
3315gydF4y2Ba
保龄球gydF4y2BaRoboDK: EventsListen ()gydF4y2Ba
3317gydF4y2Ba_COM_EVT =gydF4y2Ba
新gydF4y2BaQTcpSocket ();gydF4y2Ba
3318gydF4y2Ba
如果gydF4y2Ba(_IP.isEmpty ()) {gydF4y2Ba
3319gydF4y2Ba_COM_EVT - > connectToHost (gydF4y2Ba
“127.0.0.1”gydF4y2Ba, _PORT);gydF4y2Ba
3320gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3321gydF4y2Ba_COM_EVT - > connectToHost (_IP _PORT);gydF4y2Ba
3323gydF4y2BaqDebug () < < _COM_EVT - >状态();gydF4y2Ba
3324gydF4y2Ba_COM_EVT - > waitForConnected (_TIMEOUT);gydF4y2Ba
3325gydF4y2BaqDebug () < < _COM_EVT - >状态();gydF4y2Ba
3326gydF4y2Ba_send_Line (gydF4y2Ba
“RDK_EVT”gydF4y2Ba, _COM_EVT);gydF4y2Ba
3327gydF4y2Ba_send_Int (0, _COM_EVT);gydF4y2Ba
3328gydF4y2BaQString响应= _recv_Line(_COM_EVT);gydF4y2Ba
3329gydF4y2BaqDebug() < <反应;gydF4y2Ba
3330gydF4y2Ba
intgydF4y2Baver_evt = _recv_Int (_COM_EVT);gydF4y2Ba
3331gydF4y2Ba
intgydF4y2Ba状态= _recv_Int (_COM_EVT);gydF4y2Ba
3332gydF4y2Ba
如果gydF4y2Ba(响应! =gydF4y2Ba
“RDK_EVT”gydF4y2Ba|| status != 0)gydF4y2Ba
3334gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3338gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3341gydF4y2Ba
保龄球gydF4y2BaRoboDK:: WaitForEvent (gydF4y2Ba
intgydF4y2Baevt, itm)项gydF4y2Ba
3343gydF4y2Baevt = _recv_Int (_COM_EVT);gydF4y2Ba
3344gydF4y2Baitm = _recv_Item (_COM_EVT);gydF4y2Ba
3345gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3349gydF4y2Ba
保龄球gydF4y2BaRoboDK:: Event_Receive_3D_POS (gydF4y2Ba
双gydF4y2Ba*数据,gydF4y2Ba
intgydF4y2Ba* valueCount) {gydF4y2Ba
3350gydF4y2Ba
返回gydF4y2Ba_recv_Array(数据、valueCount _COM_EVT);gydF4y2Ba
3354gydF4y2Ba
保龄球gydF4y2BaRoboDK:: Event_Receive_Mouse_data (gydF4y2Ba
intgydF4y2Ba*数据){gydF4y2Ba
3355gydF4y2Ba数据[0]= _recv_Int (_COM_EVT);gydF4y2Ba
3356gydF4y2Ba数据[1]= _recv_Int (_COM_EVT);gydF4y2Ba
3357gydF4y2Ba数据[2]= _recv_Int (_COM_EVT);gydF4y2Ba
3359gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3362gydF4y2Ba
保龄球gydF4y2BaRoboDK: Event_Receive_Event_Moved(垫* pose_rel_out) {gydF4y2Ba
3363gydF4y2Ba
intgydF4y2Banvalues = _recv_Int (_COM_EVT);gydF4y2Ba
3364gydF4y2BaMat pose_rel = _recv_Pose(_COM_EVT);gydF4y2Ba
3365gydF4y2Ba* pose_rel_out = pose_rel;gydF4y2Ba
3366gydF4y2Ba
如果gydF4y2Ba(nvalues > 16)gydF4y2Ba
3368gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3372gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3375gydF4y2Ba
保龄球gydF4y2BaRoboDK: Event_Connected ()gydF4y2Ba
3377gydF4y2Ba
返回gydF4y2Ba_COM_EVT ! =gydF4y2Ba
nullptrgydF4y2Ba&& _COM_EVT->state() == QTcpSocket::ConnectedState;gydF4y2Ba
3382gydF4y2Ba
保龄球gydF4y2BaRoboDK: _connected () {gydF4y2Ba
3383gydF4y2Ba
返回gydF4y2Ba_COM ! =gydF4y2Ba
nullptrgydF4y2Ba&& _COM->state() == QTcpSocket::ConnectedState;gydF4y2Ba
3387gydF4y2Ba
保龄球gydF4y2BaRoboDK: _check_connection () {gydF4y2Ba
3388gydF4y2Ba
如果gydF4y2Ba(_connected ()) {gydF4y2Ba
3389gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3391gydF4y2Ba
保龄球gydF4y2Baconnection_ok = _connect_smart ();gydF4y2Ba
3395gydF4y2Ba
返回gydF4y2Baconnection_ok;gydF4y2Ba
3398gydF4y2Ba
保龄球gydF4y2BaRoboDK: _check_status () {gydF4y2Ba
3399gydF4y2Baqint32 status = _recv_Int();gydF4y2Ba
3400gydF4y2Ba
如果gydF4y2Ba(status == 0) {gydF4y2Ba
3403gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(status > 0 && status < 10) {gydF4y2Ba
3404gydF4y2BaQString strproblems (gydF4y2Ba
“未知错误”gydF4y2Ba);gydF4y2Ba
3405gydF4y2Ba
如果gydF4y2Ba(status == 1) {gydF4y2Ba
3406gydF4y2Bastrproblems =gydF4y2Ba
"提供的项无效:提供的项标识符无效或不存在。"gydF4y2Ba;gydF4y2Ba
3407gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(status == 2) {gydF4y2Ba
3408gydF4y2Bastrproblems = _recv_Line ();gydF4y2Ba
3409gydF4y2BaqDebug () <
"RoboDK API警告:"gydF4y2Ba< < strproblems;gydF4y2Ba
3410gydF4y2Ba
返回gydF4y2Ba0;gydF4y2Ba
3411gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(状态= = 3){gydF4y2Ba
3412gydF4y2Bastrproblems = _recv_Line ();gydF4y2Ba
3413gydF4y2BaqDebug () <
"RoboDK API错误:"gydF4y2Ba< < strproblems;gydF4y2Ba
3414gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(status == 9) {gydF4y2Ba
3415gydF4y2BaqDebug () <
“无效RoboDK许可证”gydF4y2Ba;gydF4y2Ba
3419gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(状态< 100){gydF4y2Ba
3420gydF4y2BaQString strproblems = _recv_Line();gydF4y2Ba
3421gydF4y2BaqDebug () <
"RoboDK API错误:"gydF4y2Ba< < strproblems;gydF4y2Ba
3422gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3424gydF4y2BaqDebug () <
RoboDK API的通信问题gydF4y2Ba;gydF4y2Ba
3426gydF4y2Ba
返回gydF4y2Ba状态;gydF4y2Ba
3431gydF4y2Ba
无效gydF4y2BaRoboDK: _disconnect () {gydF4y2Ba
3432gydF4y2Ba
如果gydF4y2Ba(_COM ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3433gydF4y2Ba_COM - > deleteLater ();gydF4y2Ba
3434gydF4y2Ba_COM =gydF4y2Ba
nullptrgydF4y2Ba;gydF4y2Ba
3439gydF4y2Ba
保龄球gydF4y2BaRoboDK: _connect_smart () {gydF4y2Ba
3441gydF4y2Ba
如果gydF4y2Ba(_connect ()) {gydF4y2Ba
3442gydF4y2BaqDebug () <
“RoboDK API已连接”gydF4y2Ba;gydF4y2Ba
3443gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3446gydF4y2BaqDebug () <
"...试图启动RoboDK:”gydF4y2Ba< < _ROBODK_BIN < ”“gydF4y2Ba< < _ARGUMENTS;gydF4y2Ba
3448gydF4y2BaQProcess * p =gydF4y2Ba
新gydF4y2BaQProcess ();gydF4y2Ba
3450gydF4y2Bap - >开始(_ROBODK_BIN _ARGUMENTS.split (gydF4y2Ba
”“gydF4y2Ba, QString:: SkipEmptyParts));gydF4y2Ba
3451gydF4y2Bap - > setReadChannel (QProcess:: StandardOutput);gydF4y2Ba
3453gydF4y2Ba_PROCESS = p - > processId ();gydF4y2Ba
3454gydF4y2Ba
而gydF4y2Ba(p - > canReadLine () | | p - > waitForReadyRead (5000)) {gydF4y2Ba
3455gydF4y2BaQString line = QString::fromUtf8(p->readLine().trim ());gydF4y2Ba
3457gydF4y2Ba
如果gydF4y2Ba(line.contains (gydF4y2Ba
“运行”gydF4y2Ba, Qt:: CaseInsensitive)) {gydF4y2Ba
3458gydF4y2BaqDebug () <
“RoboDK运行…连接API”gydF4y2Ba;gydF4y2Ba
3459gydF4y2Ba
保龄球gydF4y2Bais_connected = _connect ();gydF4y2Ba
3460gydF4y2Ba
如果gydF4y2Ba(is_connected) {gydF4y2Ba
3461gydF4y2BaqDebug () <
“RoboDK API已连接”gydF4y2Ba;gydF4y2Ba
3462gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3463gydF4y2BaqDebug () <
“RoboDK API没有连接!”gydF4y2Ba;gydF4y2Ba
3465gydF4y2Ba
返回gydF4y2Bais_connected;gydF4y2Ba
3468gydF4y2BaqDebug () <
“无法启动RoboDK!”gydF4y2Ba;gydF4y2Ba
3469gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3473gydF4y2Ba
保龄球gydF4y2BaRoboDK: _connect () {gydF4y2Ba
3474gydF4y2Ba_disconnect ();gydF4y2Ba
3475gydF4y2Ba_COM =gydF4y2Ba
新gydF4y2BaQTcpSocket ();gydF4y2Ba
3476gydF4y2Ba
如果gydF4y2Ba(_IP.isEmpty ()) {gydF4y2Ba
3477gydF4y2Ba_COM - > connectToHost (gydF4y2Ba
“127.0.0.1”gydF4y2Ba, _PORT);gydF4y2Ba
3478gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3479gydF4y2Ba_COM - > connectToHost (_IP _PORT);gydF4y2Ba
3482gydF4y2Ba
如果gydF4y2Ba(! _COM - > waitForConnected (_TIMEOUT)) {gydF4y2Ba
3483gydF4y2Ba_COM - > deleteLater ();gydF4y2Ba
3484gydF4y2Ba_COM =gydF4y2Ba
nullptrgydF4y2Ba;gydF4y2Ba
3485gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3489gydF4y2Ba_COM - >写(ROBODK_API_START_STRING);_COM - >写(ROBODK_API_LF, 1);gydF4y2Ba
3490gydF4y2Ba_COM - >写(gydF4y2Ba
“1 0”gydF4y2Ba);_COM - >写(ROBODK_API_LF, 1);gydF4y2Ba
3499gydF4y2Ba
如果gydF4y2Ba(! _COM - > canReadLine () & & ! _COM - > waitForReadyRead (_TIMEOUT)) {gydF4y2Ba
3500gydF4y2Ba_COM - > deleteLater ();gydF4y2Ba
3501gydF4y2Ba_COM =gydF4y2Ba
nullptrgydF4y2Ba;gydF4y2Ba
3502gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3504gydF4y2BaQString读(_COM - > readAll ());gydF4y2Ba
3506gydF4y2Ba
如果gydF4y2Ba(! read.startsWith (ROBODK_API_READY_STRING)) {gydF4y2Ba
3507gydF4y2Ba_COM - > deleteLater ();gydF4y2Ba
3508gydF4y2Ba_COM =gydF4y2Ba
nullptrgydF4y2Ba;gydF4y2Ba
3509gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3511gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3516gydF4y2Ba
保龄球gydF4y2BaRoboDK: _waitline (QTcpSocket * com) {gydF4y2Ba
3517gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3518gydF4y2Bacom = _COM;gydF4y2Ba
3520gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3521gydF4y2Ba
而gydF4y2Ba(! com - > canReadLine ()) {gydF4y2Ba
3522gydF4y2Ba
如果gydF4y2Ba(! com - > waitForReadyRead (_TIMEOUT)) {gydF4y2Ba
3523gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3526gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3528gydF4y2BaQString RoboDK: _recv_Line (QTcpSocket * com) {gydF4y2Ba
3529gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3530gydF4y2Bacom = _COM;gydF4y2Ba
3532gydF4y2BaQString字符串;gydF4y2Ba
3533gydF4y2Ba
如果gydF4y2Ba(! _waitline (com)) {gydF4y2Ba
3534gydF4y2Ba
如果gydF4y2Ba(com ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3536gydF4y2Bacom - > readAll ();gydF4y2Ba
3538gydF4y2Ba
返回gydF4y2Ba字符串;gydF4y2Ba
3540gydF4y2BaQByteArray line = _COM->readLine().trim ();gydF4y2Ba
3541gydF4y2Ba
字符串gydF4y2Ba.append (QString:: fromUtf8(线));gydF4y2Ba
3542gydF4y2Ba
返回gydF4y2Ba字符串;gydF4y2Ba
3544gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_Line (gydF4y2Ba
常量gydF4y2BaQString&gydF4y2Ba
字符串gydF4y2BaQTcpSocket * com) {gydF4y2Ba
3545gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3546gydF4y2Bacom = _COM;gydF4y2Ba
3548gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba| | ! com - > isOpen ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3549gydF4y2Bacom - >写(gydF4y2Ba
字符串gydF4y2Ba.toUtf8 ());gydF4y2Ba
3550gydF4y2Bacom - >写(ROBODK_API_LF, 1);gydF4y2Ba
3551gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3554gydF4y2Ba
intgydF4y2BaRoboDK: _recv_Int (QTcpSocket * com) {gydF4y2Ba
3555gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3556gydF4y2Bacom = _COM;gydF4y2Ba
3558gydF4y2Baqint32价值;gydF4y2Ba
3559gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3560gydF4y2Ba
如果gydF4y2Ba(com - > bytesAvailable ()
运算符gydF4y2Ba(qint32)) {gydF4y2Ba
3561gydF4y2Bacom - > waitForReadyRead (_TIMEOUT);gydF4y2Ba
3562gydF4y2Ba
如果gydF4y2Ba(com - > bytesAvailable ()
运算符gydF4y2Ba(qint32)) {gydF4y2Ba
3563gydF4y2Ba
返回gydF4y2Ba1;gydF4y2Ba
3566gydF4y2BaQDataStream ds (com);gydF4y2Ba
3567gydF4y2Bads > >价值;gydF4y2Ba
3568gydF4y2Ba
返回gydF4y2Ba价值;gydF4y2Ba
3570gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_Int (qint32价值,QTcpSocket * com) {gydF4y2Ba
3571gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3572gydF4y2Bacom = _COM;gydF4y2Ba
3574gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba| | ! com - > isOpen ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3575gydF4y2BaQDataStream ds (com);gydF4y2Ba
3576gydF4y2Bads < <价值;gydF4y2Ba
3577gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3580gydF4y2Ba项RoboDK: _recv_Item (QTcpSocket * com) {gydF4y2Ba
3581gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3582gydF4y2Bacom = _COM;gydF4y2Ba
3584gydF4y2Ba项项目(gydF4y2Ba
这gydF4y2Ba);gydF4y2Ba
3585gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
返回gydF4y2Ba项;}gydF4y2Ba
3586gydF4y2Ba项。_PTR= 0;gydF4y2Ba
3587gydF4y2Ba项。_TYPE = 1;gydF4y2Ba
3588gydF4y2Ba
如果gydF4y2Ba(com - > bytesAvailable ()
运算符gydF4y2Ba(quint64)) {gydF4y2Ba
3589gydF4y2Bacom - > waitForReadyRead (_TIMEOUT);gydF4y2Ba
3590gydF4y2Ba
如果gydF4y2Ba(com - > bytesAvailable ()
运算符gydF4y2Ba(quint64)) {gydF4y2Ba
3591gydF4y2Ba
返回gydF4y2Ba项;gydF4y2Ba
3594gydF4y2BaQDataStream ds (com);gydF4y2Ba
3595gydF4y2Bads > > item._PTR;gydF4y2Ba
3596gydF4y2Bads > > item._TYPE;gydF4y2Ba
3597gydF4y2Ba
返回gydF4y2Ba项;gydF4y2Ba
3599gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_Item (gydF4y2Ba
常量gydF4y2Ba项*项){gydF4y2Ba
3600gydF4y2Ba
如果gydF4y2Ba(_COM = =gydF4y2Ba
nullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3601gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3602gydF4y2BaQuint64 PTR = 0;gydF4y2Ba
3603gydF4y2Ba
如果gydF4y2Ba(项目! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3604gydF4y2Baptr =项目- > _PTR;gydF4y2Ba
3606gydF4y2Bads < < ptr;gydF4y2Ba
3607gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3609gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_Item (gydF4y2Ba
常量gydF4y2Ba项目项目){gydF4y2Ba
3610gydF4y2Ba
返回gydF4y2Ba_send_Item(项);gydF4y2Ba
3613gydF4y2Ba垫RoboDK: _recv_Pose (QTcpSocket * com) {gydF4y2Ba
3614gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3615gydF4y2Bacom = _COM;gydF4y2Ba
3618gydF4y2Ba垫子构成;gydF4y2Ba
3619gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
返回gydF4y2Ba构成;}gydF4y2Ba
3620gydF4y2Ba
intgydF4y2Ba大小= 16 *gydF4y2Ba
运算符gydF4y2Ba(双);gydF4y2Ba
3621gydF4y2Ba
如果gydF4y2Ba(com - > bytesAvailable() <大小){gydF4y2Ba
3622gydF4y2Bacom - > waitForReadyRead (_TIMEOUT);gydF4y2Ba
3623gydF4y2Ba
如果gydF4y2Ba(com - > bytesAvailable() <大小){gydF4y2Ba
3624gydF4y2Ba
返回gydF4y2Ba构成;gydF4y2Ba
3627gydF4y2BaQDataStream ds (com);gydF4y2Ba
3628gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3630gydF4y2Ba
双gydF4y2Bavaluei;gydF4y2Ba
3631gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Baj = 0;j < 4;j + +) {gydF4y2Ba
3632gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 4;我+ +){gydF4y2Ba
3633gydF4y2Bads > > valuei;gydF4y2Ba
3634gydF4y2Bapose.Set (i, j, valuei);gydF4y2Ba
3638gydF4y2Ba
返回gydF4y2Ba构成;gydF4y2Ba
3640gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_Pose (gydF4y2Ba
常量gydF4y2Ba垫子构成){gydF4y2Ba
3641gydF4y2Ba
如果gydF4y2Ba(_COM = =gydF4y2Ba
nullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3642gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3643gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3645gydF4y2Ba
双gydF4y2Bavaluei;gydF4y2Ba
3646gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Baj = 0;j < 4;j + +) {gydF4y2Ba
3647gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 4;我+ +){gydF4y2Ba
3648gydF4y2Bavaluei = pose.Get (i, j);gydF4y2Ba
3649gydF4y2Bads < < valuei;gydF4y2Ba
3652gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3654gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _recv_XYZ (gydF4y2Ba
tXYZgydF4y2Bapos) {gydF4y2Ba
3655gydF4y2Ba
如果gydF4y2Ba(_COM = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3656gydF4y2Ba
intgydF4y2Ba大小= 3 *gydF4y2Ba
运算符gydF4y2Ba(双);gydF4y2Ba
3657gydF4y2Ba
如果gydF4y2Ba(_COM - > bytesAvailable() <大小){gydF4y2Ba
3658gydF4y2Ba_COM - > waitForReadyRead (_TIMEOUT);gydF4y2Ba
3659gydF4y2Ba
如果gydF4y2Ba(_COM - > bytesAvailable() <大小){gydF4y2Ba
3660gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3663gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3664gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3666gydF4y2Ba
双gydF4y2Bavaluei;gydF4y2Ba
3667gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 3;我+ +){gydF4y2Ba
3668gydF4y2Bads > > valuei;gydF4y2Ba
3669gydF4y2Bapos[我]= valuei;gydF4y2Ba
3671gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3673gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_XYZ (gydF4y2Ba
常量gydF4y2Ba
tXYZgydF4y2Bapos) {gydF4y2Ba
3674gydF4y2Ba
如果gydF4y2Ba(_COM = =gydF4y2Ba
nullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3675gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3676gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3678gydF4y2Ba
双gydF4y2Bavaluei;gydF4y2Ba
3679gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< 3;我+ +){gydF4y2Ba
3680gydF4y2Bavaluei = pos(我);gydF4y2Ba
3681gydF4y2Bads < < valuei;gydF4y2Ba
3683gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3685gydF4y2Ba
保龄球gydF4y2BaRoboDK: _recv_Array (tJoints * jnts) {gydF4y2Ba
3686gydF4y2Ba
返回gydF4y2Ba_recv_Array (jnts - > _Values, & (jnts - > _nDOFs));gydF4y2Ba
3688gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_Array (gydF4y2Ba
常量gydF4y2BatJoints * jnts) {gydF4y2Ba
3689gydF4y2Ba
如果gydF4y2Ba(jnts = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3690gydF4y2Ba
返回gydF4y2Ba_send_Int (0);gydF4y2Ba
3692gydF4y2Ba
返回gydF4y2Ba_send_Array (jnts - > _Values jnts - > _nDOFs);gydF4y2Ba
3694gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_Array (gydF4y2Ba
常量gydF4y2Ba垫*垫){gydF4y2Ba
3695gydF4y2Ba
如果gydF4y2Ba(垫= =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3696gydF4y2Ba
返回gydF4y2Ba_send_Int (0);gydF4y2Ba
3698gydF4y2Ba
双gydF4y2Bam44 [16];gydF4y2Ba
3699gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Bac = 0;c < 4;c++) {gydF4y2Ba
3700gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Bar = 0;r < 4;r + +) {gydF4y2Ba
3701gydF4y2Bam44 (c * 4 + r) =垫- > (r, c);gydF4y2Ba
3704gydF4y2Ba
返回gydF4y2Ba_send_Array (m44 16);gydF4y2Ba
3706gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _recv_Array (gydF4y2Ba
双gydF4y2Ba*值,gydF4y2Ba
intgydF4y2Ba* psize QTcpSocket * com) {gydF4y2Ba
3707gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3708gydF4y2Bacom = _COM;gydF4y2Ba
3710gydF4y2Ba
intgydF4y2Banvalues = _recv_Int ();gydF4y2Ba
3711gydF4y2Ba
如果gydF4y2Ba(com = =gydF4y2Ba
nullptrgydF4y2Ba|| nvalues < 0) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3712gydF4y2Ba
如果gydF4y2Ba(psize ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3713gydF4y2Ba* psize = nvalues;gydF4y2Ba
3715gydF4y2Ba
如果gydF4y2Ba(nvalues < 0 || nvalues > 50){gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3716gydF4y2Ba
intgydF4y2Ba大小= nvalues *gydF4y2Ba
运算符gydF4y2Ba(双);gydF4y2Ba
3717gydF4y2Ba
如果gydF4y2Ba(com - > bytesAvailable() <大小){gydF4y2Ba
3718gydF4y2Bacom - > waitForReadyRead (_TIMEOUT);gydF4y2Ba
3719gydF4y2Ba
如果gydF4y2Ba(com - > bytesAvailable() <大小){gydF4y2Ba
3720gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3723gydF4y2BaQDataStream ds (com);gydF4y2Ba
3724gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3726gydF4y2Ba
双gydF4y2Bavaluei;gydF4y2Ba
3727gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nvalues;我+ +){gydF4y2Ba
3728gydF4y2Bads > > valuei;gydF4y2Ba
3729gydF4y2Ba值[我]= valuei;gydF4y2Ba
3731gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3734gydF4y2Ba
保龄球gydF4y2BaRoboDK:: _send_Array (gydF4y2Ba
常量gydF4y2Ba
双gydF4y2Ba*值,gydF4y2Ba
intgydF4y2Banvalues) {gydF4y2Ba
3735gydF4y2Ba
如果gydF4y2Ba(_COM = =gydF4y2Ba
nullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3736gydF4y2Ba
如果gydF4y2Ba(! _send_Int ((qint32) nvalues)) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3737gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3738gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3740gydF4y2Ba
双gydF4y2Bavaluei;gydF4y2Ba
3741gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< nvalues;我+ +){gydF4y2Ba
3742gydF4y2Bavaluei =值[我];gydF4y2Ba
3743gydF4y2Bads < < valuei;gydF4y2Ba
3745gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3748gydF4y2Ba
保龄球gydF4y2BaRoboDK: _recv_Matrix2D (tMatrix2D * *垫){gydF4y2Ba
3749gydF4y2Baqint32 dim1 = _recv_Int();gydF4y2Ba
3750gydF4y2Baqint32 dim2 = _recv_Int();gydF4y2Ba
3753gydF4y2Ba
如果gydF4y2Ba(dim1 < 0 || dim2 < 0){gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3755gydF4y2Ba
如果gydF4y2Ba(dim1 * dim2 < = 0) {gydF4y2Ba
3756gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3758gydF4y2BaQByteArray缓冲区;gydF4y2Ba
3759gydF4y2Ba
intgydF4y2Ba数= 0;gydF4y2Ba
3760gydF4y2Ba
双gydF4y2Ba价值;gydF4y2Ba
3761gydF4y2Ba
而gydF4y2Ba(gydF4y2Ba
真正的gydF4y2Ba) {gydF4y2Ba
3762gydF4y2Ba
intgydF4y2Ba剩余= dim1*dim2 - count;gydF4y2Ba
3763gydF4y2Ba
如果gydF4y2Ba(剩下的< = 0){gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;}gydF4y2Ba
3764gydF4y2Ba
如果gydF4y2Ba(_COM->bytesAvailable() <= 0 && !_COM->waitForReadyRead(_TIMEOUT)){gydF4y2Ba
3766gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3768gydF4y2Ba缓冲区。一个ppend(_COM->read(remaining *
运算符gydF4y2Ba(gydF4y2Ba
双gydF4y2Ba)——buffer.size ()));gydF4y2Ba
3769gydF4y2Ba
intgydF4y2BaNp = buffer.size() /gydF4y2Ba
运算符gydF4y2Ba(双);gydF4y2Ba
3770gydF4y2BaQDataStream indata(缓冲);gydF4y2Ba
3771gydF4y2Baindata.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3772gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< np;我+ +){gydF4y2Ba
3773gydF4y2Baindata > >价值;gydF4y2Ba
3774gydF4y2Ba(*垫)- >数据[数]=价值;gydF4y2Ba
3775gydF4y2BaCount = Count + 1;gydF4y2Ba
3777gydF4y2Ba缓冲区=缓冲区。中期(np *gydF4y2Ba
运算符gydF4y2Ba(gydF4y2Ba
双gydF4y2Ba));gydF4y2Ba
3779gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;gydF4y2Ba
3781gydF4y2Ba
保龄球gydF4y2BaRoboDK: _send_Matrix2D (tMatrix2D *垫){gydF4y2Ba
3782gydF4y2Ba
如果gydF4y2Ba(_COM = =gydF4y2Ba
nullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3783gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3784gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3788gydF4y2Ba
保龄球gydF4y2Baok1 = _send_Int (dim1);gydF4y2Ba
3789gydF4y2Ba
保龄球gydF4y2Baok2 = _send_Int (dim2);gydF4y2Ba
3790gydF4y2Ba
如果gydF4y2Ba(!Ok1 || !gydF4y2Ba
返回gydF4y2Ba
假gydF4y2Ba;}gydF4y2Ba
3791gydF4y2Ba
双gydF4y2Bavaluei;gydF4y2Ba
3792gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Baj = 0;j < dim2;j + +) {gydF4y2Ba
3793gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我< dim1;我+ +){gydF4y2Ba
3795gydF4y2Bads < < valuei;gydF4y2Ba
3798gydF4y2Ba
返回gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3801gydF4y2Ba
无效gydF4y2BaRoboDK:: _moveX (gydF4y2Ba
常量gydF4y2Ba项目目标,gydF4y2Ba
常量gydF4y2BatJoints *关节,gydF4y2Ba
常量gydF4y2Ba垫* mat_target,gydF4y2Ba
常量gydF4y2Ba项目* itemrobot,gydF4y2Ba
intgydF4y2Bamovetype,gydF4y2Ba
保龄球gydF4y2Ba阻塞){gydF4y2Ba
3802gydF4y2Baitemrobot - > WaitMove ();gydF4y2Ba
3803gydF4y2Ba_send_Line (gydF4y2Ba
“MoveX”gydF4y2Ba);gydF4y2Ba
3804gydF4y2Ba_send_Int (movetype);gydF4y2Ba
3805gydF4y2Ba
如果gydF4y2Ba(目标! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3806gydF4y2Ba_send_Int (3);gydF4y2Ba
3807gydF4y2Ba_send_Array (tJoints *)gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3808gydF4y2Ba_send_Item(目标);gydF4y2Ba
3809gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(关节! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3810gydF4y2Ba_send_Int (1);gydF4y2Ba
3811gydF4y2Ba_send_Array(关节);gydF4y2Ba
3812gydF4y2Ba_send_Item (gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3813gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(mat_target ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3814gydF4y2Ba_send_Int (2);gydF4y2Ba
3815gydF4y2Ba_send_Array (mat_target);gydF4y2Ba
3816gydF4y2Ba_send_Item (gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3817gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3819gydF4y2Ba
扔gydF4y2Ba0;gydF4y2Ba
3821gydF4y2Ba_send_Item (itemrobot);gydF4y2Ba
3822gydF4y2Ba_check_status ();gydF4y2Ba
3823gydF4y2Ba
如果gydF4y2Ba(屏蔽){gydF4y2Ba
3824gydF4y2Baitemrobot - > WaitMove ();gydF4y2Ba
3828gydF4y2Ba
无效gydF4y2BaRoboDK:: _moveC (gydF4y2Ba
常量gydF4y2Ba项目* target1,gydF4y2Ba
常量gydF4y2BatJoints * joints1,gydF4y2Ba
常量gydF4y2Ba垫* mat_target1,gydF4y2Ba
常量gydF4y2Ba项目* target2,gydF4y2Ba
常量gydF4y2BatJoints * joints2,gydF4y2Ba
常量gydF4y2Ba垫* mat_target2,gydF4y2Ba
常量gydF4y2Ba项目* itemrobot,gydF4y2Ba
保龄球gydF4y2Ba阻塞){gydF4y2Ba
3829gydF4y2Baitemrobot - > WaitMove ();gydF4y2Ba
3830gydF4y2Ba_send_Line (gydF4y2Ba
“MoveC”gydF4y2Ba);gydF4y2Ba
3831gydF4y2Ba_send_Int (3);gydF4y2Ba
3832gydF4y2Ba
如果gydF4y2Ba(target1 ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3833gydF4y2Ba_send_Int (3);gydF4y2Ba
3834gydF4y2Ba_send_Array (tJoints *)gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3835gydF4y2Ba_send_Item (target1);gydF4y2Ba
3836gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(joints1 ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3837gydF4y2Ba_send_Int (1);gydF4y2Ba
3838gydF4y2Ba_send_Array (joints1);gydF4y2Ba
3839gydF4y2Ba_send_Item (gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3840gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(mat_target1 ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3841gydF4y2Ba_send_Int (2);gydF4y2Ba
3842gydF4y2Ba_send_Array (mat_target1);gydF4y2Ba
3843gydF4y2Ba_send_Item (gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3844gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3845gydF4y2Ba
扔gydF4y2Ba0;gydF4y2Ba
3849gydF4y2Ba
如果gydF4y2Ba(target2 ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3850gydF4y2Ba_send_Int (3);gydF4y2Ba
3851gydF4y2Ba_send_Array (tJoints *)gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3852gydF4y2Ba_send_Item (target2);gydF4y2Ba
3853gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(joints2 ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3854gydF4y2Ba_send_Int (1);gydF4y2Ba
3855gydF4y2Ba_send_Array (joints2);gydF4y2Ba
3856gydF4y2Ba_send_Item (gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3857gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba
如果gydF4y2Ba(mat_target2 ! =gydF4y2Ba
nullptrgydF4y2Ba) {gydF4y2Ba
3858gydF4y2Ba_send_Int (2);gydF4y2Ba
3859gydF4y2Ba_send_Array (mat_target2);gydF4y2Ba
3860gydF4y2Ba_send_Item (gydF4y2Ba
nullptrgydF4y2Ba);gydF4y2Ba
3861gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3862gydF4y2Ba
扔gydF4y2Ba0;gydF4y2Ba
3866gydF4y2Ba_send_Item (itemrobot);gydF4y2Ba
3867gydF4y2Ba_check_status ();gydF4y2Ba
3868gydF4y2Ba
如果gydF4y2Ba(屏蔽){gydF4y2Ba
3869gydF4y2Baitemrobot - > WaitMove ();gydF4y2Ba
3894gydF4y2Ba
无效gydF4y2BaemxInit_real_T (tMatrix2D * * pEmxArraygydF4y2Ba
intgydF4y2BanumDimensions)gydF4y2Ba
3896gydF4y2BatMatrix2D * emxArray;gydF4y2Ba
3897gydF4y2Ba
intgydF4y2Ba我;gydF4y2Ba
3898gydF4y2Ba*pEmxArray = (tMatrix2D *)malloc(gydF4y2Ba
运算符gydF4y2Ba(tMatrix2D));gydF4y2Ba
3899gydF4y2BaemxArray = * pEmxArray;gydF4y2Ba
3900gydF4y2BaemxArray - >数据= (gydF4y2Ba
双gydF4y2Ba*)零;gydF4y2Ba
3901gydF4y2BaemxArray - > numDimensions = numDimensions;gydF4y2Ba
3902gydF4y2BaemxArray - >大小= (gydF4y2Ba
intgydF4y2Ba*) malloc ((gydF4y2Ba
无符号gydF4y2Ba
intgydF4y2Ba)(gydF4y2Ba
运算符gydF4y2Ba(int) * numDimensions));gydF4y2Ba
3903gydF4y2BaemxArray - > allocatedSize = 0;gydF4y2Ba
3904gydF4y2BaemxArray - > canFreeData =gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3905gydF4y2Ba
为gydF4y2Ba(i = 0;我< numDimensions;我+ +){gydF4y2Ba
3906gydF4y2BaemxArray - >大小[我]= 0;gydF4y2Ba
3913gydF4y2Ba
返回gydF4y2Ba矩阵;gydF4y2Ba
3917gydF4y2Ba
无效gydF4y2BaemxFree_real_T (tMatrix2D * * pEmxArray) {gydF4y2Ba
3918gydF4y2Ba
如果gydF4y2Ba(*pEmxArray != (tMatrix2D *)NULL) {gydF4y2Ba
3919gydF4y2Ba
如果gydF4y2Ba(((* pEmxArray) - >数据! = (gydF4y2Ba
双gydF4y2Ba*)NULL) && (*pEmxArray)->canFreeData) {gydF4y2Ba
3920gydF4y2Ba免费(gydF4y2Ba
无效gydF4y2Ba*) (* pEmxArray) - >数据);gydF4y2Ba
3922gydF4y2Ba免费(gydF4y2Ba
无效gydF4y2Ba*) (* pEmxArray) - >大小);gydF4y2Ba
3923gydF4y2Ba免费(gydF4y2Ba
无效gydF4y2Ba*) * pEmxArray);gydF4y2Ba
3924gydF4y2Ba*pEmxArray = (tMatrix2D *)NULL;gydF4y2Ba
3934gydF4y2Ba
无效gydF4y2BaemxEnsureCapacity (tMatrix2D * emxArray,gydF4y2Ba
intgydF4y2BaoldNumel,gydF4y2Ba
无符号gydF4y2Ba
intgydF4y2BaelementSize) {gydF4y2Ba
3935gydF4y2Ba
intgydF4y2BanewNumel;gydF4y2Ba
3936gydF4y2Ba
intgydF4y2Ba我;gydF4y2Ba
3937gydF4y2Ba
双gydF4y2Ba* newData;gydF4y2Ba
3938gydF4y2Ba
如果gydF4y2Ba(oldNumel < 0) {gydF4y2Ba
3939gydF4y2BaoldNumel = 0;gydF4y2Ba
3941gydF4y2BanewNumel = 1;gydF4y2Ba
3942gydF4y2Ba
为gydF4y2Ba(i = 0;我< emxArray - > numDimensions;我+ +){gydF4y2Ba
3943gydF4y2BanewNumel * = emxArray - >大小(我);gydF4y2Ba
3945gydF4y2Ba
如果gydF4y2Ba(newNumel > emxArray->allocatedSize) {gydF4y2Ba
3946gydF4y2Ba我= emxArray - > allocatedSize;gydF4y2Ba
3947gydF4y2Ba
如果gydF4y2Ba(i < 16) {gydF4y2Ba
3948gydF4y2Ba我= 16;gydF4y2Ba
3950gydF4y2Ba
而gydF4y2Ba(i < newNumel) {gydF4y2Ba
3951gydF4y2Ba
如果gydF4y2Ba(i > 1073741823) {gydF4y2Ba
3952gydF4y2Ba我= (2147483647);gydF4y2Ba
3953gydF4y2Ba}gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3954gydF4y2Ba< < = 1;gydF4y2Ba
3957gydF4y2BanewData = (gydF4y2Ba
双gydF4y2Ba*) calloc ((gydF4y2Ba
无符号gydF4y2Ba
intgydF4y2Ba我,elementSize);gydF4y2Ba
3958gydF4y2Ba
如果gydF4y2Ba(emxArray->data != NULL) {gydF4y2Ba
3959gydF4y2Bamemcpy(newData, emxArray->data, elementSize * oldNumel);gydF4y2Ba
3960gydF4y2Ba
如果gydF4y2Ba(emxArray - > canFreeData) {gydF4y2Ba
3961gydF4y2Ba自由(emxArray - >数据);gydF4y2Ba
3964gydF4y2BaemxArray - >数据= newData;gydF4y2Ba
3965gydF4y2BaemxArray - > allocatedSize =我;gydF4y2Ba
3966gydF4y2BaemxArray - > canFreeData =gydF4y2Ba
真正的gydF4y2Ba;gydF4y2Ba
3971gydF4y2Ba
intgydF4y2Baold_numel;gydF4y2Ba
3972gydF4y2Ba
intgydF4y2Banumbel;gydF4y2Ba
3974gydF4y2Ba垫- - - >gydF4y2Ba
大小gydF4y2Ba[0] =行;gydF4y2Ba
3975gydF4y2Ba垫- - - >gydF4y2Ba
大小gydF4y2Ba[1] =关口;gydF4y2Ba
3976gydF4y2Banumbel =行*关口;gydF4y2Ba
3977gydF4y2Baold_numel emxEnsureCapacity(垫,gydF4y2Ba
运算符gydF4y2Ba(gydF4y2Ba
双gydF4y2Ba));gydF4y2Ba
3985gydF4y2Ba
返回gydF4y2Bavar - - - >gydF4y2Ba
大小gydF4y2Ba(暗- 1);gydF4y2Ba
3987gydF4y2Ba
其他的gydF4y2Ba{gydF4y2Ba
3988gydF4y2Ba
返回gydF4y2Ba0;gydF4y2Ba
4000gydF4y2Ba
无效gydF4y2BaMatrix2D_SET_ij (gydF4y2Ba
常量gydF4y2BatMatrix2D * var,gydF4y2Ba
intgydF4y2Ba我,gydF4y2Ba
intgydF4y2Baj,gydF4y2Ba
双gydF4y2Ba值){gydF4y2Ba
4001gydF4y2BaVar ->data[Var ->size[0] * j + i] = value;gydF4y2Ba
4009gydF4y2Ba
无效gydF4y2BaMatrix2D_Add (tMatrix2D * var,gydF4y2Ba
常量gydF4y2Ba
双gydF4y2Ba*数组,gydF4y2Ba
intgydF4y2Ba元素个数){gydF4y2Ba
4010gydF4y2Ba
intgydF4y2Baoldnumel;gydF4y2Ba
4011gydF4y2Ba
intgydF4y2Basize1 = var - >大小[0];gydF4y2Ba
4012gydF4y2Ba
intgydF4y2Basize2 = var - >大小[1];gydF4y2Ba
4013gydF4y2Baoldnumel = size1 * size2;gydF4y2Ba
4014gydF4y2BaVar ->size[1] = size2 + 1;gydF4y2Ba
4015gydF4y2BaemxEnsureCapacity (var, oldnumel (gydF4y2Ba
intgydF4y2Ba)gydF4y2Ba
运算符gydF4y2Ba(gydF4y2Ba
双gydF4y2Ba));gydF4y2Ba
4016gydF4y2Banumel = qMin(numel, size1);gydF4y2Ba
4017gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我<元素个数;我+ +){gydF4y2Ba
4018gydF4y2BaVar ->data[size1*size2 + i] = array[i];gydF4y2Ba
4022gydF4y2Ba
无效gydF4y2BaMatrix2D_Add (tMatrix2D * var,gydF4y2Ba
常量gydF4y2BatMatrix2D * varadd) {gydF4y2Ba
4023gydF4y2Ba
intgydF4y2Baoldnumel;gydF4y2Ba
4024gydF4y2Ba
intgydF4y2Basize1 = var - >大小[0];gydF4y2Ba
4025gydF4y2Ba
intgydF4y2Basize2 = var - >大小[1];gydF4y2Ba
4026gydF4y2Ba
intgydF4y2Basize1_ap = varadd - >大小[0];gydF4y2Ba
4027gydF4y2Ba
intgydF4y2Basize2_ap = varadd - >大小[1];gydF4y2Ba
4028gydF4y2Ba
intgydF4y2Ba元素个数= size1_ap * size2_ap;gydF4y2Ba
4029gydF4y2Ba
如果gydF4y2Ba(size1 ! = size1_ap) {gydF4y2Ba
4030gydF4y2Ba
返回gydF4y2Ba;gydF4y2Ba
4032gydF4y2Baoldnumel = size1 * size2;gydF4y2Ba
4033gydF4y2BaVar ->size[1] = size2 + size2_ap;gydF4y2Ba
4034gydF4y2BaemxEnsureCapacity (var, oldnumel (gydF4y2Ba
intgydF4y2Ba)gydF4y2Ba
运算符gydF4y2Ba(gydF4y2Ba
双gydF4y2Ba));gydF4y2Ba
4035gydF4y2Ba
为gydF4y2Ba(gydF4y2Ba
intgydF4y2Ba我= 0;我<元素个数;我+ +){gydF4y2Ba
4036gydF4y2BaVar ->data[size1*size2 + i] = varadd->data[i];gydF4y2Ba
4041gydF4y2Ba
intgydF4y2Ba我;gydF4y2Ba
4042gydF4y2Ba
为gydF4y2Ba(i = 0;我< arraysize;我+ +){gydF4y2Ba
4046gydF4y2Baprintf (gydF4y2Ba
“% .3f”gydF4y2Ba阵列[我]);gydF4y2Ba
4047gydF4y2Ba
如果gydF4y2Ba(i < arraysize - 1) {gydF4y2Ba
4049gydF4y2Baprintf (gydF4y2Ba
”、“gydF4y2Ba);gydF4y2Ba
4055gydF4y2Ba
intgydF4y2Basize1;gydF4y2Ba
4056gydF4y2Ba
intgydF4y2Basize2;gydF4y2Ba
4057gydF4y2Ba
intgydF4y2Baj;gydF4y2Ba
4058gydF4y2Ba
双gydF4y2Ba*列;gydF4y2Ba
4061gydF4y2Baprintf (gydF4y2Ba
"矩阵大小= [%i, %i]\n"gydF4y2Ba、size1 size2);gydF4y2Ba
4063gydF4y2Ba
为gydF4y2Ba(j = 0;j < size2;j + +) {gydF4y2Ba
4066gydF4y2Baprintf (gydF4y2Ba
“\ n”gydF4y2Ba);gydF4y2Ba
4099gydF4y2Ba
的ifndef RDK_SKIP_NAMESPACEgydF4y2Ba
4101gydF4y2Ba
# endifgydF4y2Ba
Item类表示RoboDK站中的一个项目。一个物品可以是一个机器人,一个框架,……gydF4y2Ba
单品ObjectLink (int link_id = 0)。gydF4y2Ba
返回指向机器人链接几何形状的项指针。这是有用的显示/隐藏某些机器人li…gydF4y2Ba
int RunInstruction(const QString &code, int run_type=RoboDK::INSTRUCTION_CALL_PROGRAM)gydF4y2Ba
在程序内添加程序调用、代码、消息或注释。gydF4y2Ba
RoboDK * RDK ()gydF4y2Ba
返回RoboDK链接Robolink()。gydF4y2Ba
垫GeometryPose ()gydF4y2Ba
返回对象几何相对于它自己的参考框架....的位置(姿势)gydF4y2Ba
项getLink (int type_linked = RoboDK: ITEM_TYPE_ROBOT)gydF4y2Ba
返回链接到机器人、对象、工具、程序或机器人加工项目....的项gydF4y2Ba
项目setMachiningParameters(QString ncfile="",项目part_obj=nullptr, QString options="")gydF4y2Ba
更新机器人铣削路径输入和参数。参数输入可以是NC文件(G-code或APT…gydF4y2Ba
无效停止()gydF4y2Ba
停止程序或机器人gydF4y2Ba
void MoveC(const Item &itemtarget1, const Item &itemtarget2, bool阻塞=true)gydF4y2Ba
将机器人移动到特定目标(“循环移动”模式)。默认情况下,这个函数会阻塞,直到…gydF4y2Ba
tMatrix2D * SolveIK_All_Mat2D(const Mat &pose, const Mat *tool=nullptr, const Mat *ref=nullptr)gydF4y2Ba
计算指定机器人的逆运动学和姿态。函数返回所有可用的…gydF4y2Ba
空白setRunType (int program_run_type)gydF4y2Ba
设置程序是在模拟模式下运行还是在真正的机器人上运行。使用:“PROGRAM_RUN_ON_SIMULAT…gydF4y2Ba
void setSpeed(双speed_linear,双acceler_linear =-1,双speed_joint =-1,双acceler_joint =-1)gydF4y2Ba
设置机器人的速度和/或加速度。gydF4y2Ba
损失int InstructionList (tMatrix2D *指令)gydF4y2Ba
返回作为MxN矩阵的程序指令列表,其中N是指令的数量,而…gydF4y2Ba
空白NewLink ()gydF4y2Ba
为RoboDK创建一个新的通信链接。如果你使用多线程应用程序,请将此用于机器人…gydF4y2Ba
Mat SolveFK(const tnodes & nodes, const Mat *tool=nullptr, const Mat *ref=nullptr)gydF4y2Ba
对给定的关节计算机器人的正运动学。工具和参考系…gydF4y2Ba
bool (const QString &robot_ip="")gydF4y2Ba
使用相应的机器人驱动程序连接到真正的机器人。gydF4y2Ba
setPoseTool(常量Mat tool_pose)gydF4y2Ba
设置机器人或工具对象(工具中心点,或TCP)的工具。工具姿势可以是…gydF4y2Ba
void setjoint (const tjoint &jnts)gydF4y2Ba
设置机器人的关节或目标的关节gydF4y2Ba
(bool check_pointer=falsegydF4y2Ba
检查一个项目是否有效(不是空的并且在开放站中可用)gydF4y2Ba
void指令(int ins_id, QString &name, int &instype, int &movetype, bool & isjointttarget, Mat &target, t关节&关节)gydF4y2Ba
返回位置id处的程序指令gydF4y2Ba
qint32 _TYPEgydF4y2Ba
项目类型。gydF4y2Ba
空白setAccuracyActive (int准确= 1)gydF4y2Ba
设置机器人激活或不激活的精度。机器人必须经过校准才能正确使用……gydF4y2Ba
垫子构成()常量gydF4y2Ba
返回对象、目标或参考帧的局部位置(位姿)。例如,……gydF4y2Ba
空白改变颜色(双colorRGBA [4])gydF4y2Ba
改变机器人/物体/工具的颜色。颜色的格式必须是color =[R,…]gydF4y2Ba
int类型()常量gydF4y2Ba
项目类型(对象,机器人,工具,参考,机器人加工项目,…)gydF4y2Ba
void customInstruction(const QString &name, const QString &path_run, const QString &path_icon="", bool blocking=true, const QString &cmd_run_on_robot="")gydF4y2Ba
添加一个自定义指令。此指令将执行一个Python文件或一个可执行文件。gydF4y2Ba
void setDO(const QString &io_var &io_value)gydF4y2Ba
将变量(输出)设置为给定值。这也可以用来将任何变量设置为所需的va…gydF4y2Ba
(const Mat pose)gydF4y2Ba
设置对象、目标或参考帧的局部位置(位姿)。例如,……gydF4y2Ba
(const Mat pose)gydF4y2Ba
设置对象几何的位置(姿势)相对于它自己的参考框架....gydF4y2Ba
bool忙()gydF4y2Ba
检查机器人或程序当前是否正在运行(忙或移动)gydF4y2Ba
空白setAsJointTarget ()gydF4y2Ba
将目标设置为联合目标。一个关节目标移动到一个关节位置而不考虑推车…gydF4y2Ba
int RunCode(const QString ¶meters)gydF4y2Ba
运行一个程序。它返回可以成功执行的指令的数量(一个快速的进程…gydF4y2Ba
垫PoseTool ()gydF4y2Ba
返回项目的工具姿势。如果机器人被提供,它将得到活动工具的工具姿势…gydF4y2Ba
bool断开()gydF4y2Ba
断开与真实机器人的连接(当使用机器人驱动程序时)gydF4y2Ba
void setRobot(const Item &robot)gydF4y2Ba
设置程序或目标的机器人。你必须设置机器人连接到一个程序或一个目标每…gydF4y2Ba
(const Mat pose)gydF4y2Ba
设置项的全局位置(姿势)。例如,一个对象/帧/目标的位置…gydF4y2Ba
void setJointsHome(const tjoint &jnts)gydF4y2Ba
设置机器人关节为home位置gydF4y2Ba
空白setParent(父项)gydF4y2Ba
将项目附加到新的父级,同时保持与父级....的相对位置gydF4y2Ba
void setPoseFrame(const Mat frame_pose)gydF4y2Ba
设置机器人的参考帧(用户帧)。框架可以是一个项目或一个姿势....gydF4y2Ba
空白setRounding(双zonedata)gydF4y2Ba
设置机器人运动平滑精度(也称为区域数据值)。gydF4y2Ba
void JointsConfig(const tjoint &joint, tConfig config)gydF4y2Ba
返回一组机器人关节的机器人配置状态。gydF4y2Ba
空白setParentStatic(父项)gydF4y2Ba
将项目附加到另一个父节点,同时保持站点....中的当前绝对位置gydF4y2Ba
int instructionlistjoins (QString &error_msg, tMatrix2D **joint_list, double mm_step=10.0, double deg_step=5.0, const QString &save_to_file="", bool collision_check=false, int flags=0, double time_step_s=0.1)gydF4y2Ba
返回一个MxN矩阵的关节列表,其中M是机器人轴的数量加上4列....gydF4y2Ba
空白ShowTargets (bool可见= true)gydF4y2Ba
在RoboDK树中显示或隐藏程序的目标gydF4y2Ba
const tJoints关节()gydF4y2Ba
返回机器人的当前关节或目标的关节。如果物体是笛卡尔坐标目标,…gydF4y2Ba
(double timeout_sec=300gydF4y2Ba
等待(阻塞)直到机器人完成它的移动。gydF4y2Ba
垫PoseFrame ()gydF4y2Ba
返回项目的参考帧姿势。如果提供一个机器人,它将得到工具的姿势。gydF4y2Ba
垫PoseAbs ()gydF4y2Ba
返回项目的全局位置(pose)。例如,物体/帧/目标的位置…gydF4y2Ba
RoboDK * _RDKgydF4y2Ba
指向RoboDK链接对象的指针。gydF4y2Ba
QList< t关节> SolveIK_All(const Mat &pose, const Mat *tool=nullptr, const Mat *ref=nullptr)gydF4y2Ba
计算指定机器人的逆运动学和姿态。函数返回所有可用的…gydF4y2Ba
bool isJointTarget()常量gydF4y2Ba
如果目标是联合目标(绿色图标)则返回True。否则,目标就是笛卡尔目标…gydF4y2Ba
quint64 _PTRgydF4y2Ba
指向RoboDK内部项目的指针。gydF4y2Ba
void MoveJ(const Item &itemtarget, bool blocking=true)gydF4y2Ba
将机器人移动到特定的目标(“移动关节”模式)。默认情况下,这个函数阻塞,直到ro…gydF4y2Ba
QList< Item > Childs() constgydF4y2Ba
返回附加到所提供项的项子项列表。gydF4y2Ba
int InstructionCount ()gydF4y2Ba
返回程序的指令数。gydF4y2Ba
(const QString &name)gydF4y2Ba
设置RoboDK项目的名称。gydF4y2Ba
double Update(int collision_check=RoboDK::COLLISION_OFF, int timeout_sec=3600, double *out_nins_time_dist=nullptr, double mm_step=-1, double deg_step=-1)gydF4y2Ba
更新程序并返回估计的时间和有效指令的数量....gydF4y2Ba
保存(const QString &filename)gydF4y2Ba
将工作站、机器人、工具或对象保存到文件中gydF4y2Ba
空白暂停(双time_ms = 1)gydF4y2Ba
在生成代码时为机器人或程序生成暂停指令。将其设置为-1(默认)i…gydF4y2Ba
const tJoints JointsHome ()gydF4y2Ba
返回机器人的主关节。这些关节可以在机器人的“参数”菜单中手动设置,…gydF4y2Ba
项AttachClosest ()gydF4y2Ba
把最近的物体贴在工具上。返回附加的项。gydF4y2Ba
空白DetachAll(父项)gydF4y2Ba
拆下任何附在工具上的物件。gydF4y2Ba
空白ShowInstructions (bool可见= true)gydF4y2Ba
在RoboDK树中显示或隐藏程序的指令项gydF4y2Ba
void setAO(const QString &io_var &io_value)gydF4y2Ba
设置模拟输出gydF4y2Ba
void JointLimits(tjoint *lower_limits, tjoint *upper_limits)gydF4y2Ba
检索机器人的关节极限gydF4y2Ba
bool可见()常量gydF4y2Ba
如果项可见,则返回1,否则返回0。gydF4y2Ba
make程序的命名方法gydF4y2Ba
将程序保存到文件中。gydF4y2Ba
空白Delete ()gydF4y2Ba
从站中删除项及其子项。gydF4y2Ba
void waitDI(const QString &io_var, const QString &io_value, double timeout_ms=-1)gydF4y2Ba
等待输入io_id获得给定值io_value。可以选择提供一个超时。gydF4y2Ba
getDI(const QString &io_var)gydF4y2Ba
获取数字输入(DI)。这个功能只有在使用机器人连接到一个真正的机器人时才有用…gydF4y2Ba
void setVisible(bool visible, int visible_frame=-1)gydF4y2Ba
设置项可见性状态gydF4y2Ba
MoveL(const Item &itemtarget, bool blocking=true)gydF4y2Ba
将机器人移动到特定目标(“线性移动”模式)。默认情况下,该函数一直阻塞到r…gydF4y2Ba
setParam(常量QString &参数,常量QString &值)gydF4y2Ba
设置具体的项目参数。选择工具-运行脚本-显示命令查看所有可用的命令…gydF4y2Ba
int调用()gydF4y2Ba
运行一个程序。它返回可以成功执行的指令的数量(一个快速的进程…gydF4y2Ba
空白setAsCartesianTarget ()gydF4y2Ba
将目标设置为笛卡尔目标。笛卡尔目标移动到笛卡尔坐标。gydF4y2Ba
空白ShowSequence (tMatrix2D *序列)gydF4y2Ba
显示关节序列gydF4y2Ba
int MoveL_Test(const tjoins &joints1, const Mat &pose2, double minstep_mm=-1)gydF4y2Ba
检查线性移动是否没有问题和(可选的)碰撞。gydF4y2Ba
const QString名称()gydF4y2Ba
返回项的名称。项目的名称总是显示在RoboDK站树中gydF4y2Ba
bool完成()gydF4y2Ba
断开与RoboDK API的连接。这将刷新任何挂起的程序生成。gydF4y2Ba
AddTool(const Mat &tool_pose, const QString &tool_name="新TCP")gydF4y2Ba
向提供工具位姿(4x4矩阵)和工具名称的机器人添加一个空工具。gydF4y2Ba
t关节SolveIK(const Mat &pose, const Mat *tool=nullptr, const Mat *ref=nullptr)gydF4y2Ba
这个函数计算一个姿态的逆运动学。返回的关节是最靠近…gydF4y2Ba
quint64 GetID ()gydF4y2Ba
获取项目指针。gydF4y2Ba
无效量表(双尺度)gydF4y2Ba
对对象应用比例,使其变大或变小。鳞片可以是均匀的(如果鳞片是浮子…gydF4y2Ba
int MoveJ_Test(const tjoint &j1, const tjoint &j2, double minstep_deg=-1)gydF4y2Ba
检查关节运动是否可能,以及(可选)是否没有碰撞。gydF4y2Ba
void setInstruction(int ins_id, const QString &name, int instype, int movetype, bool isjointtarget, const Mat &target, const tnodes &joint)gydF4y2Ba
在位置id处设置程序指令gydF4y2Ba
(QString &io_var)gydF4y2Ba
获取模拟输入(AI)。这个功能只有在使用机器人连接到一个真正的机器人时才有用…gydF4y2Ba
项DetachClosest(父项)gydF4y2Ba
分离连接到工具的最近的对象(参见setParentStatic)。gydF4y2Ba
void setJointLimits(const tjoint &lower_limits, const tjoint &upper_limits)gydF4y2Ba
设置机器人的关节限制gydF4y2Ba
项父()常量gydF4y2Ba
返回此项的父项gydF4y2Ba
Mat类表示一个4x4的姿势矩阵。这个物体的主要目的是代表一个姿势在…gydF4y2Ba
垫()gydF4y2Ba
创建单位矩阵。gydF4y2Ba
VX(tXYZ xyz)常量gydF4y2Ba
得到X向量(N向量)gydF4y2Ba
void setVX(双x,双y,双z)gydF4y2Ba
设置X向量值(N向量)gydF4y2Ba
空白FromXYZRPW (tXYZWPR xyzwpr)gydF4y2Ba
从位置和欧拉角([x,y,z,r,p,w]向量)计算姿态,结果是相同的…gydF4y2Ba
void VY(tXYZ xyz)常量gydF4y2Ba
得到Y向量(O向量)gydF4y2Ba
Mat transl(双x,双y,双z)gydF4y2Ba
返回一个平移矩阵。gydF4y2Ba
(xyzwpr xyzwprgydF4y2Ba
计算给定姿态的等效位置和欧拉角([x,y,z,r,p,w]向量)gydF4y2Ba
void setVZ(双x,双y,双z)gydF4y2Ba
设置Z向量值(A向量)gydF4y2Ba
double Get(int r, int cgydF4y2Ba
得到一个矩阵值。gydF4y2Ba
bool有效()常量gydF4y2Ba
检查矩阵是否有效。gydF4y2Ba
void setVY(双x,双y,双z)gydF4y2Ba
设置Y向量值(O向量)gydF4y2Ba
静电垫片(双联)gydF4y2Ba
返回一个y轴旋转矩阵gydF4y2Ba
const double * Values(gydF4y2Ba
获取一个指向16位数组的指针(如果定义了ROBODK_API_FLOATS,则为double或float)。gydF4y2Ba
void Pos(tXYZ xyzgydF4y2Ba
获取位置(T位置),单位为mm。gydF4y2Ba
bool MakeHomogeneous ()gydF4y2Ba
强迫4x4矩阵是齐次的(vx,vy,vz必须是酉向量并尊重:vx x vy = vz)....gydF4y2Ba
静电垫(双rz)gydF4y2Ba
返回一个z轴旋转矩阵。gydF4y2Ba
ValuesD()常量gydF4y2Ba
获取一个指向16位双数组的指针。gydF4y2Ba
双_ddata16 [16]gydF4y2Ba
作为双数组的数据副本。gydF4y2Ba
QString ToString(const QString &separator=", ", int precision=3, bool xyzwpr_only=falsegydF4y2Ba
检索姿势的字符串表示形式。gydF4y2Ba
(bool FromString &str)gydF4y2Ba
给定XYZRPW字符串数组(6个值)设置矩阵gydF4y2Ba
垫发票()常量gydF4y2Ba
反位姿(假定齐次矩阵)gydF4y2Ba
void setPos(双x,双y,双z)gydF4y2Ba
设置位置(T位置),单位为mm。gydF4y2Ba
void VZ(tXYZ xyzgydF4y2Ba
得到Z向量(A向量)gydF4y2Ba
bool isHomogeneous()常量gydF4y2Ba
如果矩阵是齐次的则返回true,否则返回false。gydF4y2Ba
bool _validgydF4y2Ba
标记,如果矩阵无效。gydF4y2Ba
const float * ValuesF(gydF4y2Ba
获取一个指向16位数组的指针作为浮点数数组。gydF4y2Ba
void Set(int r, int c, double value)gydF4y2Ba
设置一个矩阵值。gydF4y2Ba
静电垫rotx(双rx)gydF4y2Ba
返回x轴旋转矩阵。gydF4y2Ba
Mat(双x,双y,双z,双r,双p,双w)gydF4y2Ba
从位置和欧拉角([x,y,z,r,p,w]向量)计算姿态,结果是相同的…gydF4y2Ba
这个类是RoboDK API的迭代面。有了RoboDK API,你可以自动化某些任务和…gydF4y2Ba
void setViewPose(const Mat &pose)gydF4y2Ba
设置相对于用户视图(相机/屏幕)的全局参考帧的姿态。gydF4y2Ba
空白setSimulationSpeed(双速)gydF4y2Ba
设置当前模拟速度。将速度设置为1进行实时模拟。最慢的速度是…gydF4y2Ba
@ ITEM_TYPE_PROGRAMgydF4y2Ba
程序项。gydF4y2Ba
Item(QString名称,int itemtype=-1)gydF4y2Ba
按名称返回项。如果没有精确匹配,它将返回最后一个最接近的匹配。gydF4y2Ba
粘贴(const Item *paste_to=nullptr)gydF4y2Ba
粘贴复制的项作为另一项的依赖项(与Ctrl+V相同)。浆糊应在Co.…gydF4y2Ba
getCollisionItems(QList< int > link_id_list)gydF4y2Ba
返回处于冲突状态的项的列表。这个函数可以在调用Colli…gydF4y2Ba
空白CloseRoboDK ()gydF4y2Ba
关闭RoboDK窗口,完成RoboDK的执行gydF4y2Ba
QString命令(const QString &cmd, const QString &value="")gydF4y2Ba
发送一个特殊命令。这些命令意味着在RoboDK中有特定的效果,…gydF4y2Ba
void ShowMessage(const QString &message, bool popup=true)gydF4y2Ba
在RoboDK中显示一条消息(它可以在状态栏中阻塞或不阻塞)gydF4y2Ba
项目添加点(tMatrix2D *points,项目*referenceObject=nullptr, bool addToRef=false, int ProjectionType=PROJECTION_ALONG_NORMAL_RECALC)gydF4y2Ba
向对象添加点列表。提供的点必须是顶点的列表....gydF4y2Ba
int RunCode(const QString &code, bool code_is_fcn_call=false)gydF4y2Ba
添加要在程序输出中运行的代码。如果程序存在,它也将在simulat中运行程序。gydF4y2Ba
bool LaserTrackerMeasure(tXYZ xyz, tXYZ estimate, bool search=false)gydF4y2Ba
对其自身的参照系进行激光跟踪器测量。如果估计点是pr…gydF4y2Ba
碰撞(项目item1,项目item2)gydF4y2Ba
如果item1和item2碰撞,返回1。否则返回0。gydF4y2Ba
保存(const QString &filename, const Item *itemsave=nullptr)gydF4y2Ba
将项保存到文件中。如果没有提供任何项目,则保存开放站。gydF4y2Ba
IsInside(对象object_inside,对象object_parent)gydF4y2Ba
检查一个对象是否完全在另一个对象中。gydF4y2Ba
QString许可证()gydF4y2Ba
以可读字符串的形式返回许可证(与RoboDK的标题栏中显示的名称相同,…gydF4y2Ba
空白setRunMode (int run_mode = 1)gydF4y2Ba
设置RoboDK API的行为。默认情况下,RoboDK显示运动指令的路径模拟…gydF4y2Ba
QString版()gydF4y2Ba
以4位字符串的形式返回RoboDK版本:Major.Minor.Revision.BuildgydF4y2Ba
项目AddFile(const QString &filename, const Item *parent=nullptr)gydF4y2Ba
加载一个文件并将其附加到父文件。它可以是RoboDK支持的任何文件。gydF4y2Ba
项目添加站(const QString &name)gydF4y2Ba
添加一个新的空站。它返回添加的站项。gydF4y2Ba
> itemList, QList< bool > collidedList, QList< int > *robot_link_id=nullptr)gydF4y2Ba
显示冲突项的列表。gydF4y2Ba
setCollisionActivePair(int check_state, Item item1, Item item2, int id1=0, int id2=0)gydF4y2Ba
为特定对象对....设置碰撞检查ON或OFF (COLLISION_ON/COLLISION_OFF)gydF4y2Ba
bool FileGet(const QString &path_file_local, Item *station=nullptr, const QString path_file_remote="")gydF4y2Ba
从RoboDK运行实例中检索一个文件。gydF4y2Ba
int RunMode ()gydF4y2Ba
返回RoboDK API的行为。在默认情况下,RoboDK显示移动的路径模拟…gydF4y2Ba
项getActiveStation ()gydF4y2Ba
返回活动的站点项目(当前可见的站点)。gydF4y2Ba
QList< QPair< QString, QString > > getParams()gydF4y2Ba
从开放的RoboDK站获取所有用户参数。参数还可以通过钻机进行修改。gydF4y2Ba
空白ShowRoboDK ()gydF4y2Ba
显示或打开RoboDK窗口。gydF4y2Ba
void CalibrateTool(tMatrix2D *poses_joint, tXYZ tcp_xyz, int format=EULER_RX_RY_RZ, int algorithm=CALIBRATE_TCP_BY_POINT, Item *robot=nullptr, double *error_stats=nullptr)gydF4y2Ba
标定一个工具(TCP),给定一些点或标定接头。重要提示:如果机器人是卡尔…gydF4y2Ba
空白断开()gydF4y2Ba
断开与RoboDK API的连接。这将刷新任何挂起的程序生成。gydF4y2Ba
项目Popup_ISO9283_CubeProgram(项目*robot=nullptr, tXYZ center=nullptr,双面=-1,bool blocking=true)gydF4y2Ba
显示弹出菜单创建ISO9283路径的位置精度,重复性和路径精度…gydF4y2Ba
int setCollisionActive (int check_state = COLLISION_ON)gydF4y2Ba
根据碰撞地图....打开或关闭碰撞检查(COLLISION_OFF/COLLISION_OFF)gydF4y2Ba
getCursorXYZ(int x=-1, int y=-1, tXYZ xyzStation=nullptr)gydF4y2Ba
返回光标的位置为XYZ坐标(默认情况下),或给定集合的3D位置…gydF4y2Ba
垫ViewPose ()gydF4y2Ba
获取相对于用户视图(相机/屏幕)的全局参考帧的姿态。gydF4y2Ba
ItemUserPick(const QString &message="选择一个项目",int itemtype=-1)gydF4y2Ba
显示一个RoboDK弹出窗口,从打开的RoboDK站选择一个对象。可以指定项类型…gydF4y2Ba
项目AddTarget(const QString &name,项目*itemparent=nullptr,项目*itemrobot=nullptr)gydF4y2Ba
添加一个可以用机器人到达的新目标。gydF4y2Ba
(QList< Item > list_items)gydF4y2Ba
设置树中的选择(它可以是一个或多个项)。gydF4y2Ba
QList< Item > Selection()gydF4y2Ba
返回所选项的列表(它可以是一个或多个项)。gydF4y2Ba
项目AddMachiningProject(const QString &name="曲线跟踪设置",项目*itemrobot=nullptr)gydF4y2Ba
添加一个新的机器人加工项目。加工项目也可用于3D打印,…gydF4y2Ba
项目AddCurve(tMatrix2D *curvePoints,项目*referenceObject=nullptr, bool addToRef=false, int ProjectionType=PROJECTION_ALONG_NORMAL_RECALC)gydF4y2Ba
添加提供点坐标的曲线。提供的点必须是顶点的列表....gydF4y2Ba
Item AddProgram(const QString &name, Item *itemrobot=nullptr)gydF4y2Ba
添加一个可以被机器人引用的新帧。gydF4y2Ba
int Cam2D_Snapshot(const QString &file_save_img, const Item &cam_item, const QString ¶ms="")gydF4y2Ba
拍摄一个模拟相机的快照,并将其保存为图像。gydF4y2Ba
QList< Item > getOpenStation()gydF4y2Ba
返回RoboDK中开放站点的列表。gydF4y2Ba
int运行程序(const QString &function_w_params)gydF4y2Ba
在程序输出中添加函数调用。RoboDK将在代码生成时处理语法…gydF4y2Ba
int ProgramStart(const QString &progname, const QString &defaultfolder="", const QString &postprocessor="", Item *robot=nullptr)gydF4y2Ba
在生成程序时定义程序的名称。也可以指定nam…gydF4y2Ba
QList< Item > gettemlist (int filter=-1)gydF4y2Ba
返回当前打开状态中所有可用项的项列表(名称或指针的列表)…gydF4y2Ba
int Cam2D_SetParams(常量QString &cam_params,常量Item &cam_item)gydF4y2Ba
设置摄像机参数。gydF4y2Ba
Mat CalibrateReference(tMatrix2D *poses_joint, int method=CALIBRATE_FRAME_3P_P1_ON_X, bool use_joint =false, Item *robot=nullptr)gydF4y2Ba
校准参考坐标系给定的一组点或关节值。重要:如果机器人是校准…gydF4y2Ba
void RunMessage(const QString &message, bool message_is_comment=false)gydF4y2Ba
在输出机器人程序中显示消息或注释。gydF4y2Ba
项目AddFrame(const QString &name,项目*itemparent=nullptr)gydF4y2Ba
添加一个可以被机器人引用的新帧。gydF4y2Ba
int getFlagsItem(项目项)gydF4y2Ba
检索当前项标志。项目标志允许定义用户对特定于项目的…gydF4y2Ba
空白setActiveStation (stn)项gydF4y2Ba
设置活动站点(当前可见的项目)。gydF4y2Ba
项目AddShape(tMatrix2D *trianglePoints,项目*addTo=nullptr, bool shapeOverride=false, Color * Color =nullptr)gydF4y2Ba
添加提供三角形坐标的形状。三角形必须作为顶点列表....提供gydF4y2Ba
项目Cam2D_Add(const Item &item_object, const QString &cam_params, const Item *cam_item=nullptr)gydF4y2Ba
添加一个模拟2D或深度相机作为一个项目。使用Delete删除它。gydF4y2Ba
QStringList getItemListNames (int过滤器= 1)gydF4y2Ba
返回当前打开站中所有可用项目的项目列表(名称列表或项目列表)…gydF4y2Ba
空白setWindowState (int windowstate = WINDOWSTATE_NORMAL)gydF4y2Ba
设置RoboDK窗口的状态gydF4y2Ba
空白HideRoboDK ()gydF4y2Ba
隐藏RoboDK窗口。RoboDK将继续在后台运行。gydF4y2Ba
@ INS_TYPE_MOVEgydF4y2Ba
直线或关节运动指令。gydF4y2Ba
int碰撞()gydF4y2Ba
返回当前处于冲突状态的对象对的数量。gydF4y2Ba
void Copy(const Item &tocopy)gydF4y2Ba
复制一个项目(与Ctrl+C相同),可以使用Paste()粘贴(Ctrl+V)。gydF4y2Ba
空白CloseStation ()gydF4y2Ba
关闭当前站而不要求保存。gydF4y2Ba
void setParam(常量QString &参数,常量QString &值)gydF4y2Ba
设置RoboDK站点的全局参数。如果参数存在,则修改为....gydF4y2Ba
无效的更新()gydF4y2Ba
更新屏幕。这更新了所有机器人和内部链接的位置根据先前…gydF4y2Ba
getParam(const QString ¶m)gydF4y2Ba
从打开的RoboDK站获取全局参数或用户参数。参数也可以修改…gydF4y2Ba
void ProjectPoints(tMatrix2D *points, tMatrix2D **投影,项目objectProject, int ProjectionType=PROJECTION_ALONG_NORMAL_RECALC)gydF4y2Ba
投射一个给定坐标的点。所提供的点必须是[XYZ]坐标的列表....gydF4y2Ba
空白setFlagsRoboDK (int旗帜= FLAG_ROBODK_ALL)gydF4y2Ba
更新RoboDK标志。RoboDK标志允许定义用户有多少访问特定的RoboDK f…gydF4y2Ba
空白完成()gydF4y2Ba
断开与RoboDK API的连接。这将刷新任何挂起的程序生成。gydF4y2Ba
void setFlagsItem(Item Item, int flags=FLAG_ITEM_ALL)gydF4y2Ba
更新项目旗帜。项目标志允许定义用户对项目特定特性....的访问权限gydF4y2Ba
空白渲染(bool always_render = false)gydF4y2Ba
更新场景。gydF4y2Ba
双SimulationSpeed ()gydF4y2Ba
获取当前模拟速度。将速度设置为1进行实时模拟。gydF4y2Ba
bool文件集(const QString &file_local, const QString &file_remote="", bool load_file=true, Item *attach_to=nullptr)gydF4y2Ba
将文件从当前位置发送到RoboDK实例。gydF4y2Ba
tjoint类表示机器人的关节位置(机器人轴)。gydF4y2Ba
int getvalue(双*关节)gydF4y2Ba
getvalue。gydF4y2Ba
tJoints (int ndofs = 0)gydF4y2Ba
tJointsgydF4y2Ba
QString (const QString &separator=", ", int precision=3)gydF4y2Ba
检索联合值的字符串表示形式。gydF4y2Ba
bool有效()常量gydF4y2Ba
检查关节是否有效。例如,当我们要求逆运动学时,没有so…gydF4y2Ba
int长度()常量gydF4y2Ba
机器人关节轴数(或自由度)gydF4y2Ba
const double * Values(gydF4y2Ba
共同的价值观。gydF4y2Ba
int _nDOFsgydF4y2Ba
自由度的数量gydF4y2Ba
ValuesD()常量gydF4y2Ba
共同的价值观。gydF4y2Ba
双_Values [RDK_SIZE_JOINTS_MAX]gydF4y2Ba
联合值(双精度,用于存储联合值)gydF4y2Ba
(bool FromString &str)gydF4y2Ba
给定一个逗号分隔的字符串,设置关节值。也允许使用制表符和空格。gydF4y2Ba
空白setLength (int new_length)gydF4y2Ba
设置数组的长度(只允许缩小数组)gydF4y2Ba
浮动_ValuesF [RDK_SIZE_JOINTS_MAX]gydF4y2Ba
联合值(浮动,用于作为浮动指针返回一个副本)gydF4y2Ba
const float * ValuesF(gydF4y2Ba
共同的价值观。gydF4y2Ba
void SetValues(const double *joint, int ndofs=-1)gydF4y2Ba
以度或毫米为单位设置关节值。您还可以提供自由度的数量(6…gydF4y2Ba
所有RoboDK API函数都包装在RoboDK_API命名空间中。如果你宁愿忘记R…gydF4y2Ba
double * Matrix2D_Get_col(常量tMatrix2D *var, int col)gydF4y2Ba
返回tMatrix2D列的指针。列的Matrix2D_Get_nrows值可以是ac…gydF4y2Ba
tMatrix2D * Matrix2D_Create ()gydF4y2Ba
创建一个新的二维矩阵tMatrix2D..使用Matrix2D_Delete删除矩阵(释放内存)....gydF4y2Ba
垫roty(双变化)gydF4y2Ba
翻译矩阵类:Mat::roty。gydF4y2Ba
int Matrix2D_Get_ncols(常量tMatrix2D *var)gydF4y2Ba
返回tMatrix2D的列数。gydF4y2Ba
(const tMatrix2D *var, int i, int j)gydF4y2Ba
返回tMatrix2D在位置[i,j]处的值。gydF4y2Ba
垫rotz(双rz)gydF4y2Ba
翻译矩阵类:Mat::rotz。gydF4y2Ba
双tConfig [RDK_SIZE_MAX_CONFIG]gydF4y2Ba
机器人配置定义了机器人的特定状态,而不跨越任何奇点....gydF4y2Ba
Mat transl(双x,双y,双z)gydF4y2Ba
翻译矩阵类:Mat::transl。gydF4y2Ba
void Matrix2D_Set_Size(tMatrix2D *mat, int rows, int cols)gydF4y2Ba
设置tMatrix2D的大小。gydF4y2Ba
int Matrix2D_Size(常量tMatrix2D *var, int dim)gydF4y2Ba
设置tMatrix2D的大小。gydF4y2Ba
(const tMatrix2D *emx)gydF4y2Ba
通过STDOUT显示tMatrix2D的内容。这仅用于调试目的。gydF4y2Ba
垫rotx(双rx)gydF4y2Ba
翻译矩阵类:Mat::rotx。gydF4y2Ba
双tXYZ [3]gydF4y2Ba
tXYZ (mm)表示以mm为单位的位置或向量gydF4y2Ba
int Matrix2D_Get_nrows(常量tMatrix2D *var)gydF4y2Ba
返回tMatrix2D的行数。gydF4y2Ba
void Debug_Array(const double *array, int arraysize)gydF4y2Ba
给定一个双精度数组,它生成一个字符串。gydF4y2Ba
空白Matrix2D_Delete (tMatrix2D * *垫)gydF4y2Ba
删除一个tMatrix2D。gydF4y2Ba
双tXYZWPR [6]gydF4y2Ba
六个双精度表示机器人关节(通常以度为单位)gydF4y2Ba
Color结构体表示RGBA颜色(每个颜色组件的范围应该是[0-1])gydF4y2Ba
浮动rgydF4y2Ba
红色的颜色。gydF4y2Ba
一个浮动gydF4y2Ba
Alpha值(0 =透明;1 =不透明)gydF4y2Ba
浮动bgydF4y2Ba
蓝色的颜色。gydF4y2Ba
浮动ggydF4y2Ba
绿色的颜色。gydF4y2Ba
tMatrix2D结构表示一个可变大小的2d矩阵。使用Matrix2D_……函数操作…gydF4y2Ba
双*数据gydF4y2Ba
指向数据的指针。gydF4y2Ba
int *大小gydF4y2Ba
指向大小数组的指针。gydF4y2Ba
int numDimensionsgydF4y2Ba
维数(通常为2)gydF4y2Ba