RoboDK API -文档gydF4y2Ba
robodk_api.cppgydF4y2Ba
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
7gydF4y2Ba
8gydF4y2Ba
9gydF4y2Ba # ifdef _WIN32gydF4y2Ba
10gydF4y2Ba // Windows默认路径:gydF4y2Ba
11gydF4y2Ba “C:/RoboDK/bin/RoboDK.exe”gydF4y2Ba
12gydF4y2Ba
13gydF4y2Ba # elif __APPLE__gydF4y2Ba
14gydF4y2Ba // Mac默认安装路径gydF4y2Ba
15gydF4y2Ba #定义RoboDK" ~/RoboDK/Applications/RoboDK.app/Contents/MacOS/RoboDK"gydF4y2Ba
16gydF4y2Ba
17gydF4y2Ba 其他#gydF4y2Ba
18gydF4y2Ba
19gydF4y2Ba // Linux系统默认安装路径:gydF4y2Ba
20.gydF4y2Ba “~/RoboDK/bin/RoboDK”gydF4y2Ba
21gydF4y2Ba
22gydF4y2Ba # endifgydF4y2Ba
23gydF4y2Ba
24gydF4y2Ba #定义ROBODK_DEFAULT_PORT 20500gydF4y2Ba
25gydF4y2Ba
26gydF4y2Ba #定义ROBODK_API_TIMEOUT 1000gydF4y2Ba //通信超时。对于速度较慢的计算机,提高这个值gydF4y2Ba
27gydF4y2Ba #定义ROBODK_API_START_STRING "CMD_START"gydF4y2Ba
28gydF4y2Ba #定义ROBODK_API_READY_STRINGgydF4y2Ba
29gydF4y2Ba #定义ROBODK_API_LF "\n"gydF4y2Ba
30.gydF4y2Ba
31gydF4y2Ba
32gydF4y2Ba
33gydF4y2Ba #定义M_PI 3.14159265358979323846264338327950288gydF4y2Ba
34gydF4y2Ba
35gydF4y2Ba
36gydF4y2Ba 的ifndef RDK_SKIP_NAMESPACEgydF4y2Ba
37gydF4y2Ba 名称空间gydF4y2Ba RoboDK_APIgydF4y2Ba{gydF4y2Ba
38gydF4y2Ba # endifgydF4y2Ba
39gydF4y2Ba
40gydF4y2Ba
41gydF4y2Ba //----------------------------------- 关节类 ------------------------gydF4y2Ba
42gydF4y2Ba tJoints: tJointsgydF4y2Ba(gydF4y2BaintgydF4y2Bandofs) {gydF4y2Ba
43gydF4y2Ba _nDOFsgydF4y2Ba= qMin(ndofs, RDK_SIZE_JOINTS_MAX);gydF4y2Ba
44gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
45gydF4y2Ba _ValuesgydF4y2Ba[i] = 0.0;gydF4y2Ba
46gydF4y2Ba}gydF4y2Ba
47gydF4y2Ba}gydF4y2Ba
48gydF4y2Ba tJoints: tJointsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba是){gydF4y2Ba
49gydF4y2Ba setvaluegydF4y2Ba(复制。gydF4y2Ba_ValuesgydF4y2Ba,复制。gydF4y2Ba_nDOFsgydF4y2Ba);gydF4y2Ba
50gydF4y2Ba}gydF4y2Ba
51gydF4y2Ba tJoints: tJointsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 双gydF4y2Ba*关节,gydF4y2BaintgydF4y2Bandofs) {gydF4y2Ba
52gydF4y2Ba setvaluegydF4y2Ba(关节,ndofs);gydF4y2Ba
53gydF4y2Ba}gydF4y2Ba
54gydF4y2Ba tJoints: tJointsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 浮动gydF4y2Ba*关节,gydF4y2BaintgydF4y2Bandofs) {gydF4y2Ba
55gydF4y2Ba intgydF4y2Bandofs_ok = qMin(ndofs, RDK_SIZE_JOINTS_MAX);gydF4y2Ba
56gydF4y2Ba 双gydF4y2Bajnts [RDK_SIZE_JOINTS_MAX];gydF4y2Ba
57gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< ndofs_ok;我+ +){gydF4y2Ba
58gydF4y2BaJnts [i] =关节[i];gydF4y2Ba
59gydF4y2Ba}gydF4y2Ba
60gydF4y2Ba setvaluegydF4y2Ba(jnts ndofs_ok);gydF4y2Ba
61gydF4y2Ba}gydF4y2Ba
62gydF4y2Ba tJoints: tJointsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tMatrix2DgydF4y2Ba* mat2d,gydF4y2BaintgydF4y2Ba列,gydF4y2BaintgydF4y2Bandofs) {gydF4y2Ba
63gydF4y2Ba intgydF4y2Bancols =gydF4y2BaMatrix2D_SizegydF4y2Ba(mat2d, 2);gydF4y2Ba
64gydF4y2Ba 如果gydF4y2Ba(列>= ncols){gydF4y2Ba
65gydF4y2Ba _nDOFsgydF4y2Ba= 0;gydF4y2Ba
66gydF4y2BaqDebug () < 警告:tMatrix2D列在创建关节时超出范围gydF4y2Ba;gydF4y2Ba
67gydF4y2Ba}gydF4y2Ba
68gydF4y2Ba 如果gydF4y2Ba(ndofs < 0){gydF4y2Ba
69gydF4y2Bandofs =gydF4y2BaMatrix2D_SizegydF4y2Ba(mat2d, 1);gydF4y2Ba
70gydF4y2Ba}gydF4y2Ba
71gydF4y2Ba _nDOFsgydF4y2Ba= qMin(ndofs, RDK_SIZE_JOINTS_MAX);gydF4y2Ba
72gydF4y2Ba 双gydF4y2Ba* ptr =gydF4y2BaMatrix2D_Get_colgydF4y2Ba(mat2d、列);gydF4y2Ba
73gydF4y2Ba setvaluegydF4y2Ba(简称:gydF4y2Ba_nDOFsgydF4y2Ba);gydF4y2Ba
74gydF4y2Ba}gydF4y2Ba
75gydF4y2Ba tJoints: tJointsgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString str) {gydF4y2Ba
76gydF4y2Ba _nDOFsgydF4y2Ba= 0;gydF4y2Ba
77gydF4y2Ba FromStringgydF4y2Ba(str);gydF4y2Ba
78gydF4y2Ba}gydF4y2Ba
79gydF4y2Ba
80gydF4y2Ba 常量gydF4y2Ba 双gydF4y2Ba*gydF4y2BatJoints:礼乐祭祀gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
81gydF4y2Ba 返回gydF4y2Ba _ValuesgydF4y2Ba;gydF4y2Ba
82gydF4y2Ba}gydF4y2Ba
83gydF4y2Ba 常量gydF4y2Ba 浮动gydF4y2Ba*gydF4y2BatJoints: ValuesFgydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
84gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< RDK_SIZE_JOINTS_MAX;我+ +){gydF4y2Ba
85gydF4y2Ba((gydF4y2Ba浮动gydF4y2Ba*)gydF4y2Ba_ValuesFgydF4y2Ba[我]=gydF4y2Ba_ValuesgydF4y2Ba[我];gydF4y2Ba
86gydF4y2Ba}gydF4y2Ba
87gydF4y2Ba 返回gydF4y2Ba _ValuesFgydF4y2Ba;gydF4y2Ba
88gydF4y2Ba}gydF4y2Ba
89gydF4y2Ba # ifdef ROBODK_API_FLOATSgydF4y2Ba
90gydF4y2Ba 常量gydF4y2Ba 浮动gydF4y2Ba*gydF4y2BatJoints:值gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
91gydF4y2Ba 返回gydF4y2Ba ValuesFgydF4y2Ba();gydF4y2Ba
92gydF4y2Ba}gydF4y2Ba
93gydF4y2Ba 其他#gydF4y2Ba
94gydF4y2Ba 常量gydF4y2Ba 双gydF4y2Ba*gydF4y2BatJoints:值gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
95gydF4y2Ba 返回gydF4y2Ba _ValuesgydF4y2Ba;gydF4y2Ba
96gydF4y2Ba}gydF4y2Ba
97gydF4y2Ba # endifgydF4y2Ba
98gydF4y2Ba
99gydF4y2Ba 双gydF4y2Ba*gydF4y2BatJoints:数据gydF4y2Ba(){gydF4y2Ba
One hundred.gydF4y2Ba 返回gydF4y2Ba _ValuesgydF4y2Ba;gydF4y2Ba
101gydF4y2Ba}gydF4y2Ba
102gydF4y2Ba
103gydF4y2Ba
104gydF4y2Ba 无效gydF4y2Ba tJoints: setvaluegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 双gydF4y2Ba*值,gydF4y2BaintgydF4y2Bandofs) {gydF4y2Ba
105gydF4y2Ba 如果gydF4y2Ba(ndofs >= 0){gydF4y2Ba
106gydF4y2Ba _nDOFsgydF4y2Ba= qMin(ndofs, RDK_SIZE_JOINTS_MAX);gydF4y2Ba
107gydF4y2Ba}gydF4y2Ba
108gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
109gydF4y2Ba _ValuesgydF4y2Ba[i] = values[i];gydF4y2Ba
110gydF4y2Ba}gydF4y2Ba
111gydF4y2Ba}gydF4y2Ba
112gydF4y2Ba
113gydF4y2Ba 无效gydF4y2Ba tJoints: setvaluegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 浮动gydF4y2Ba*值,gydF4y2BaintgydF4y2Bandofs) {gydF4y2Ba
114gydF4y2Ba 如果gydF4y2Ba(ndofs >= 0){gydF4y2Ba
115gydF4y2Ba _nDOFsgydF4y2Ba= qMin(ndofs, RDK_SIZE_JOINTS_MAX);gydF4y2Ba
116gydF4y2Ba}gydF4y2Ba
117gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
118gydF4y2Ba _ValuesgydF4y2Ba[i] = values[i];gydF4y2Ba
119gydF4y2Ba}gydF4y2Ba
120gydF4y2Ba}gydF4y2Ba
121gydF4y2Ba intgydF4y2Ba tJoints: getvaluegydF4y2Ba(gydF4y2Ba双gydF4y2Ba*值){gydF4y2Ba
122gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
123gydF4y2Ba[我]=值gydF4y2Ba_ValuesgydF4y2Ba[我];gydF4y2Ba
124gydF4y2Ba}gydF4y2Ba
125gydF4y2Ba 返回gydF4y2Ba _nDOFsgydF4y2Ba;gydF4y2Ba
126gydF4y2Ba}gydF4y2Ba
127gydF4y2BaQStringgydF4y2BatJoints: ToStringgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString分离器,gydF4y2BaintgydF4y2Ba精度)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
128gydF4y2Ba 如果gydF4y2Ba(!gydF4y2Ba有效的gydF4y2Ba()) {gydF4y2Ba
129gydF4y2Ba 返回gydF4y2Ba ”“tJoints(无效)gydF4y2Ba;gydF4y2Ba
130gydF4y2Ba}gydF4y2Ba
131gydF4y2BaQString值(gydF4y2Ba“tJoints({”gydF4y2Ba);gydF4y2Ba
132gydF4y2Ba 如果gydF4y2Ba(gydF4y2Ba_nDOFsgydF4y2Ba< = 0) {gydF4y2Ba
133gydF4y2Ba 返回gydF4y2Ba值;gydF4y2Ba
134gydF4y2Ba}gydF4y2Ba
135gydF4y2Bavalues.append (QString::号码(gydF4y2Ba_ValuesgydF4y2Ba[0],gydF4y2Ba“f”gydF4y2Ba、精密));gydF4y2Ba
136gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Bai = 1;我_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
137gydF4y2Bavalues.append(分离器);gydF4y2Ba
138gydF4y2Bavalues.append (QString::号码(gydF4y2Ba_ValuesgydF4y2Ba(我),gydF4y2Ba“f”gydF4y2Ba、精密));gydF4y2Ba
139gydF4y2Ba}gydF4y2Ba
140gydF4y2Bavalues.append (gydF4y2Ba"}, "gydF4y2Ba+ QString::数量(gydF4y2Ba_nDOFsgydF4y2Ba) +gydF4y2Ba")"gydF4y2Ba);gydF4y2Ba
141gydF4y2Ba 返回gydF4y2Ba值;gydF4y2Ba
142gydF4y2Ba}gydF4y2Ba
143gydF4y2Ba 保龄球gydF4y2Ba tJoints: FromStringgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString str) {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(gydF4y2BaintgydF4y2Ba我= 0;我_nDOFsgydF4y2Ba;我+ +){gydF4y2Ba
147gydF4y2BaQString生态(jnts_list.at (i));gydF4y2Ba
148gydF4y2Ba _ValuesgydF4y2Ba[i] = str .trim ().toDouble();gydF4y2Ba
149gydF4y2Ba}gydF4y2Ba
150gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
151gydF4y2Ba}gydF4y2Ba
152gydF4y2Ba
153gydF4y2Ba intgydF4y2Ba tJoints:长度gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
154gydF4y2Ba 返回gydF4y2Ba _nDOFsgydF4y2Ba;gydF4y2Ba
155gydF4y2Ba}gydF4y2Ba
156gydF4y2Ba
157gydF4y2Ba 无效gydF4y2Ba tJoints: setLengthgydF4y2Ba(gydF4y2BaintgydF4y2Banew_length) {gydF4y2Ba
158gydF4y2Ba 如果gydF4y2Banew_length >= 0 && new_length _nDOFsgydF4y2Ba){gydF4y2Ba
159gydF4y2Ba _nDOFsgydF4y2Ba= new_length;gydF4y2Ba
160gydF4y2Ba}gydF4y2Ba
161gydF4y2Ba}gydF4y2Ba
162gydF4y2Ba
163gydF4y2Ba 保龄球gydF4y2Ba tJoints:有效gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
164gydF4y2Ba 返回gydF4y2Ba _nDOFsgydF4y2Ba> 0;gydF4y2Ba
165gydF4y2Ba}gydF4y2Ba
166gydF4y2Ba //---------------------------------------------------------------------gydF4y2Ba
167gydF4y2Ba
168gydF4y2Ba
169gydF4y2Ba
170gydF4y2Ba
171gydF4y2Ba
172gydF4y2Ba
173gydF4y2Ba 垫gydF4y2Ba translgydF4y2Ba(gydF4y2Ba双gydF4y2Bax,gydF4y2Ba双gydF4y2Bay,gydF4y2Ba双gydF4y2Baz) {gydF4y2Ba
174gydF4y2Ba 返回gydF4y2Ba 垫:translgydF4y2Ba(x, y, z);gydF4y2Ba
175gydF4y2Ba}gydF4y2Ba
176gydF4y2Ba
177gydF4y2Ba 垫gydF4y2Ba rotxgydF4y2Ba(gydF4y2Ba双gydF4y2Barx) {gydF4y2Ba
178gydF4y2Ba 返回gydF4y2Ba 垫:rotxgydF4y2Ba(rx);gydF4y2Ba
179gydF4y2Ba}gydF4y2Ba
180gydF4y2Ba
181gydF4y2Ba 垫gydF4y2Ba rotygydF4y2Ba(gydF4y2Ba双gydF4y2Ba一){gydF4y2Ba
182gydF4y2Ba 返回gydF4y2Ba 垫:rotygydF4y2Ba(一);gydF4y2Ba
183gydF4y2Ba}gydF4y2Ba
184gydF4y2Ba
185gydF4y2Ba 垫gydF4y2Ba rotzgydF4y2Ba(gydF4y2Ba双gydF4y2Barz) {gydF4y2Ba
186gydF4y2Ba 返回gydF4y2Ba 垫:rotzgydF4y2Ba(rz);gydF4y2Ba
187gydF4y2Ba}gydF4y2Ba
188gydF4y2Ba
189gydF4y2Ba 垫:垫gydF4y2Ba(): QMatrix4x4() {gydF4y2Ba
190gydF4y2Ba _validgydF4y2Ba=gydF4y2Ba真正的gydF4y2Ba;gydF4y2Ba
191gydF4y2BasetToIdentity ();gydF4y2Ba
192gydF4y2Ba}gydF4y2Ba
193gydF4y2Ba 垫:垫gydF4y2Ba(gydF4y2Ba保龄球gydF4y2Ba有效):QMatrix4x4() {gydF4y2Ba
194gydF4y2Ba _validgydF4y2Ba=有效;gydF4y2Ba
195gydF4y2BasetToIdentity ();gydF4y2Ba
196gydF4y2Ba}gydF4y2Ba
197gydF4y2Ba
198gydF4y2Ba 垫:垫gydF4y2Ba(gydF4y2Ba常量gydF4y2BaQMatrix4x4 &矩阵):QMatrix4x4(矩阵){gydF4y2Ba
199gydF4y2Ba //复制gydF4y2Ba
200gydF4y2Ba _validgydF4y2Ba=gydF4y2Ba真正的gydF4y2Ba;gydF4y2Ba
201gydF4y2Ba}gydF4y2Ba
202gydF4y2Ba 垫:垫gydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba&矩阵):QMatrix4x4(矩阵){gydF4y2Ba
203gydF4y2Ba //复制gydF4y2Ba
204gydF4y2Ba _validgydF4y2Ba=矩阵。gydF4y2Ba_validgydF4y2Ba;gydF4y2Ba
205gydF4y2Ba}gydF4y2Ba
206gydF4y2Ba
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
209gydF4y2Ba{gydF4y2Ba
210gydF4y2Ba _validgydF4y2Ba=gydF4y2Ba真正的gydF4y2Ba;gydF4y2Ba
211gydF4y2Ba}gydF4y2Ba
212gydF4y2Ba 垫:垫gydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 双gydF4y2Bav [16]):gydF4y2Ba
213gydF4y2BaQMatrix4x4 (v [0], [4], [8], [12], [1], [5], [9], [13], [2], [6], [10], [14], [3], [7], [11], v [15])gydF4y2Ba
214gydF4y2Ba{gydF4y2Ba
215gydF4y2Ba _validgydF4y2Ba=gydF4y2Ba真正的gydF4y2Ba;gydF4y2Ba
216gydF4y2Ba}gydF4y2Ba
217gydF4y2Ba 垫:垫gydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 浮动gydF4y2Bav [16]):gydF4y2Ba
218gydF4y2BaQMatrix4x4 (v [0], [4], [8], [12], [1], [5], [9], [13], [2], [6], [10], [14], [3], [7], [11], v [15])gydF4y2Ba
219gydF4y2Ba{gydF4y2Ba
220gydF4y2Ba _validgydF4y2Ba=gydF4y2Ba真正的gydF4y2Ba;gydF4y2Ba
221gydF4y2Ba}gydF4y2Ba
222gydF4y2Ba
223gydF4y2Ba
224gydF4y2Ba
225gydF4y2Ba垫::~垫(){gydF4y2Ba
226gydF4y2Ba
227gydF4y2Ba}gydF4y2Ba
228gydF4y2Ba
229gydF4y2Ba
230gydF4y2Ba 无效gydF4y2Ba 垫:VXgydF4y2Ba(gydF4y2BatXYZgydF4y2Baxyz)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
231gydF4y2Baxyz [0] =gydF4y2Ba得到gydF4y2Ba(0,0);gydF4y2Ba
232gydF4y2Baxyz [1] =gydF4y2Ba得到gydF4y2Ba(1,0);gydF4y2Ba
233gydF4y2Baxyz [2] =gydF4y2Ba得到gydF4y2Ba(2,0);gydF4y2Ba
234gydF4y2Ba}gydF4y2Ba
235gydF4y2Ba 无效gydF4y2Ba 垫:vgydF4y2Ba(gydF4y2BatXYZgydF4y2Baxyz)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
236gydF4y2Baxyz [0] =gydF4y2Ba得到gydF4y2Ba(0,1);gydF4y2Ba
237gydF4y2Baxyz [1] =gydF4y2Ba得到gydF4y2Ba(1,1);gydF4y2Ba
238gydF4y2Baxyz [2] =gydF4y2Ba得到gydF4y2Ba(2, 1);gydF4y2Ba
239gydF4y2Ba}gydF4y2Ba
240gydF4y2Ba 无效gydF4y2Ba 垫:登陆gydF4y2Ba(gydF4y2BatXYZgydF4y2Baxyz)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
241gydF4y2Baxyz [0] =gydF4y2Ba得到gydF4y2Ba(0, 2);gydF4y2Ba
242gydF4y2Baxyz [1] =gydF4y2Ba得到gydF4y2Ba(1、2);gydF4y2Ba
243gydF4y2Baxyz [2] =gydF4y2Ba得到gydF4y2Ba(2, 2);gydF4y2Ba
244gydF4y2Ba}gydF4y2Ba
245gydF4y2Ba 无效gydF4y2Ba 垫:PosgydF4y2Ba(gydF4y2BatXYZgydF4y2Baxyz)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
246gydF4y2Baxyz [0] =gydF4y2Ba得到gydF4y2Ba(0, 3);gydF4y2Ba
247gydF4y2Baxyz [1] =gydF4y2Ba得到gydF4y2Ba(1、3);gydF4y2Ba
248gydF4y2Baxyz [2] =gydF4y2Ba得到gydF4y2Ba(2、3);gydF4y2Ba
249gydF4y2Ba}gydF4y2Ba
250gydF4y2Ba 无效gydF4y2Ba 垫:setVXgydF4y2Ba(gydF4y2Ba双gydF4y2Bax,gydF4y2Ba双gydF4y2Bay,gydF4y2Ba双gydF4y2Baz) {gydF4y2Ba
251gydF4y2Ba 集gydF4y2Ba(0, 0, x);gydF4y2Ba
252gydF4y2Ba 集gydF4y2Ba(1,0, y);gydF4y2Ba
253gydF4y2Ba 集gydF4y2Ba(2 0 z);gydF4y2Ba
254gydF4y2Ba}gydF4y2Ba
255gydF4y2Ba 无效gydF4y2Ba 垫:setVYgydF4y2Ba(gydF4y2Ba双gydF4y2Bax,gydF4y2Ba双gydF4y2Bay,gydF4y2Ba双gydF4y2Baz) {gydF4y2Ba
256gydF4y2Ba 集gydF4y2Ba(0, 1, x);gydF4y2Ba
257gydF4y2Ba 集gydF4y2Ba(1, - 1, y);gydF4y2Ba
258gydF4y2Ba 集gydF4y2Ba(2, 1, z);gydF4y2Ba
259gydF4y2Ba}gydF4y2Ba
260gydF4y2Ba
261gydF4y2Ba 无效gydF4y2Ba 垫:setVZgydF4y2Ba(gydF4y2Ba双gydF4y2Bax,gydF4y2Ba双gydF4y2Bay,gydF4y2Ba双gydF4y2Baz) {gydF4y2Ba
262gydF4y2Ba 集gydF4y2Ba(0, 2 x);gydF4y2Ba
263gydF4y2Ba 集gydF4y2Ba(1、2,y);gydF4y2Ba
264gydF4y2Ba 集gydF4y2Ba(2, 2, z);gydF4y2Ba
265gydF4y2Ba}gydF4y2Ba
266gydF4y2Ba
267gydF4y2Ba 无效gydF4y2Ba 垫:setPosgydF4y2Ba(gydF4y2Ba双gydF4y2Bax,gydF4y2Ba双gydF4y2Bay,gydF4y2Ba双gydF4y2Baz) {gydF4y2Ba
268gydF4y2Ba 集gydF4y2Ba(0 3 x);gydF4y2Ba
269gydF4y2Ba 集gydF4y2Ba(1、3,y);gydF4y2Ba
270gydF4y2Ba 集gydF4y2Ba(2、3、z);gydF4y2Ba
271gydF4y2Ba}gydF4y2Ba
272gydF4y2Ba 无效gydF4y2Ba 垫:setVXgydF4y2Ba(gydF4y2Ba双gydF4y2Baxyz [3]) {gydF4y2Ba
273gydF4y2Ba 集gydF4y2Ba(0, 0, xyz [0]);gydF4y2Ba
274gydF4y2Ba 集gydF4y2Ba(1,0, xyz [1]);gydF4y2Ba
275gydF4y2Ba 集gydF4y2Ba(2,0, xyz [2]);gydF4y2Ba
276gydF4y2Ba}gydF4y2Ba
277gydF4y2Ba 无效gydF4y2Ba 垫:setVYgydF4y2Ba(gydF4y2Ba双gydF4y2Baxyz [3]) {gydF4y2Ba
278gydF4y2Ba 集gydF4y2Ba(0, 1, xyz [0]);gydF4y2Ba
279gydF4y2Ba 集gydF4y2Ba(1, - 1, xyz [1]);gydF4y2Ba
280gydF4y2Ba 集gydF4y2Ba(2, 1, xyz [2]);gydF4y2Ba
281gydF4y2Ba}gydF4y2Ba
282gydF4y2Ba 无效gydF4y2Ba 垫:setVZgydF4y2Ba(gydF4y2Ba双gydF4y2Baxyz [3]) {gydF4y2Ba
283gydF4y2Ba 集gydF4y2Ba(0, 2, xyz [0]);gydF4y2Ba
284gydF4y2Ba 集gydF4y2Ba(1、2、xyz [1]);gydF4y2Ba
285gydF4y2Ba 集gydF4y2Ba(2, 2, xyz [2]);gydF4y2Ba
286gydF4y2Ba}gydF4y2Ba
287gydF4y2Ba 无效gydF4y2Ba 垫:setPosgydF4y2Ba(gydF4y2Ba双gydF4y2Baxyz [3]) {gydF4y2Ba
288gydF4y2Ba 集gydF4y2Ba(0、3、xyz [0]);gydF4y2Ba
289gydF4y2Ba 集gydF4y2Ba(1、3,xyz [1]);gydF4y2Ba
290gydF4y2Ba 集gydF4y2Ba(2、3,xyz [2]);gydF4y2Ba
291gydF4y2Ba}gydF4y2Ba
292gydF4y2Ba
293gydF4y2Ba 无效gydF4y2Ba 垫:集gydF4y2Ba(gydF4y2BaintgydF4y2Ba我,gydF4y2BaintgydF4y2Baj,gydF4y2Ba双gydF4y2Ba值){gydF4y2Ba
294gydF4y2BaQVector4D rw(- >行(i));gydF4y2Ba
295gydF4y2BaRw [j] = value;gydF4y2Ba
296gydF4y2BasetRow (rw);gydF4y2Ba
297gydF4y2Ba //以下不应该崩溃!!gydF4y2Ba
298gydF4y2Ba //float **dt_ok = (float**) data();gydF4y2Ba
299gydF4y2Ba //dt_ok[i][j] = value;gydF4y2Ba
300gydF4y2Ba}gydF4y2Ba
301gydF4y2Ba
302gydF4y2Ba 双gydF4y2Ba 垫::gydF4y2Ba(gydF4y2BaintgydF4y2Ba我,gydF4y2BaintgydF4y2Baj)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
303gydF4y2Ba 返回gydF4y2Ba行(我)[j];gydF4y2Ba
304gydF4y2Ba //下面的应该是允许的!!gydF4y2Ba
305gydF4y2Ba //return ((const float**)data())[i][j];gydF4y2Ba
306gydF4y2Ba}gydF4y2Ba
307gydF4y2Ba
308gydF4y2Ba
309gydF4y2Ba 垫gydF4y2Ba 垫:发票gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
310gydF4y2Ba 返回gydF4y2Ba——>倒();gydF4y2Ba
311gydF4y2Ba}gydF4y2Ba
312gydF4y2Ba
313gydF4y2Ba 保龄球gydF4y2Ba 垫:isHomogeneousgydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
314gydF4y2Ba 常量gydF4y2Ba 保龄球gydF4y2Badebug_info =gydF4y2Ba假gydF4y2Ba;gydF4y2Ba
315gydF4y2Ba tXYZgydF4y2BaVx vy vz;gydF4y2Ba
316gydF4y2Ba 常量gydF4y2Ba 双gydF4y2BaTol = 1e-7;gydF4y2Ba
317gydF4y2Ba VXgydF4y2Ba(vx);gydF4y2Ba
318gydF4y2Ba vgydF4y2Ba(v);gydF4y2Ba
319gydF4y2Ba VZgydF4y2Ba(款);gydF4y2Ba
320gydF4y2Ba 如果gydF4y2Ba(晶圆厂((gydF4y2Ba双gydF4y2Ba) DOT(vx,vy)) > tol){gydF4y2Ba
321gydF4y2Ba 如果gydF4y2Ba(debug_info) {gydF4y2Ba
322gydF4y2BaqDebug () < “向量X和Y不垂直!”gydF4y2Ba;gydF4y2Ba
323gydF4y2Ba}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
328gydF4y2Ba}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
333gydF4y2Ba}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
338gydF4y2Ba}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
343gydF4y2Ba}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
348gydF4y2Ba}gydF4y2Ba
349gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
350gydF4y2Ba}gydF4y2Ba
351gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
352gydF4y2Ba}gydF4y2Ba
353gydF4y2Ba
354gydF4y2Ba 保龄球gydF4y2Ba 垫:MakeHomogeneousgydF4y2Ba(){gydF4y2Ba
355gydF4y2Ba tXYZgydF4y2BaVx vy vz;gydF4y2Ba
356gydF4y2Ba VXgydF4y2Ba(vx);gydF4y2Ba
357gydF4y2Ba vgydF4y2Ba(v);gydF4y2Ba
358gydF4y2Ba VZgydF4y2Ba(款);gydF4y2Ba
359gydF4y2Ba 保龄球gydF4y2Bais_homogeneous =gydF4y2BaisHomogeneousgydF4y2Ba();gydF4y2Ba
360gydF4y2Ba / /如果(is_homogeneous) {gydF4y2Ba
361gydF4y2Ba //返回false;gydF4y2Ba
362gydF4y2Ba / /}gydF4y2Ba
363gydF4y2Ba
364gydF4y2Ba正常化(vx);gydF4y2Ba
365gydF4y2BaCROSS(vz, vx, vy);gydF4y2Ba
366gydF4y2Ba正常化(款);gydF4y2Ba
367gydF4y2BaCROSS(vy, vz, vx);gydF4y2Ba
368gydF4y2Ba正常化(v);gydF4y2Ba
369gydF4y2Ba setVXgydF4y2Ba(vx);gydF4y2Ba
370gydF4y2Ba setVYgydF4y2Ba(v);gydF4y2Ba
371gydF4y2Ba setVZgydF4y2Ba(款);gydF4y2Ba
372gydF4y2Ba 集gydF4y2Ba(3 0, 0.0);gydF4y2Ba
373gydF4y2Ba 集gydF4y2Ba(3、1、0.0);gydF4y2Ba
374gydF4y2Ba 集gydF4y2Ba(3 2, 0.0);gydF4y2Ba
375gydF4y2Ba 集gydF4y2Ba(3, 3, 1.0);gydF4y2Ba
376gydF4y2Ba 返回gydF4y2Ba! is_homogeneous;gydF4y2Ba
377gydF4y2Ba}gydF4y2Ba
378gydF4y2Ba
379gydF4y2Ba
380gydF4y2Ba //----------------------------------------------------gydF4y2Ba
381gydF4y2Ba
382gydF4y2Ba 无效gydF4y2Ba 垫:ToXYZRPWgydF4y2Ba(gydF4y2BatXYZWPRgydF4y2Baxyzwpr)gydF4y2Ba常量gydF4y2Ba{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
390gydF4y2BaW = atan2(-gydF4y2Ba得到gydF4y2Ba(1、2),gydF4y2Ba得到gydF4y2Ba(1,1));gydF4y2Ba
391gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(gydF4y2Ba得到gydF4y2Ba(2,0) < -1.0 + 1e-6){gydF4y2Ba
392gydF4y2Bap = 0.5*M_PI;gydF4y2Ba
393gydF4y2BaR = 0;gydF4y2Ba
394gydF4y2BaW = atan2(gydF4y2Ba得到gydF4y2Ba(1、2),gydF4y2Ba得到gydF4y2Ba(1,1));gydF4y2Ba
395gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
396gydF4y2BaP = atan2(-gydF4y2Ba得到gydF4y2Ba(2,0),√(gydF4y2Ba得到gydF4y2Ba(0,0) *gydF4y2Ba得到gydF4y2Ba(0,0) +gydF4y2Ba得到gydF4y2Ba(1,0) *gydF4y2Ba得到gydF4y2Ba(1,0)));gydF4y2Ba
397gydF4y2BaW = atan2(gydF4y2Ba得到gydF4y2Ba(1,0),gydF4y2Ba得到gydF4y2Ba(0,0));gydF4y2Ba
398gydF4y2BaR = atan2(gydF4y2Ba得到gydF4y2Ba(2, 1),gydF4y2Ba得到gydF4y2Ba(2, 2));gydF4y2Ba
399gydF4y2Ba}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
406gydF4y2Ba}gydF4y2Ba
407gydF4y2Ba
408gydF4y2BaQStringgydF4y2Ba垫:ToStringgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString分离器,gydF4y2BaintgydF4y2Ba精度,gydF4y2Ba保龄球gydF4y2Baxyzwpr_only)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
409gydF4y2Ba 如果gydF4y2Ba(!gydF4y2Ba有效的gydF4y2Ba()) {gydF4y2Ba
410gydF4y2Ba 返回gydF4y2Ba “垫(无效)gydF4y2Ba;gydF4y2Ba
411gydF4y2Ba}gydF4y2Ba
412gydF4y2BaQString str;gydF4y2Ba
413gydF4y2Ba 如果gydF4y2Ba(!gydF4y2BaisHomogeneousgydF4y2Ba()) {gydF4y2Ba
414gydF4y2Bastr.append (gydF4y2Ba“警告! !姿势不均匀!使用Mat::MakeHomogeneous()使这个矩阵齐次\n”gydF4y2Ba);gydF4y2Ba
415gydF4y2Ba}gydF4y2Ba
416gydF4y2Bastr.append (gydF4y2Ba“垫(XYZRPW_2_Mat(“gydF4y2Ba);gydF4y2Ba
417gydF4y2Ba
418gydF4y2Ba tXYZWPRgydF4y2Baxyzwpr;gydF4y2Ba
419gydF4y2Ba ToXYZRPWgydF4y2Ba(xyzwpr);gydF4y2Ba
420gydF4y2Bastr.append (QString::数量(xyzwpr [0],gydF4y2Ba“f”gydF4y2Ba、精密));gydF4y2Ba
421gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Bai = 1;我< 6;我+ +){gydF4y2Ba
422gydF4y2Bastr.append(分离器);gydF4y2Ba
423gydF4y2Bastr.append (QString::数量(xyzwpr[我],gydF4y2Ba“f”gydF4y2Ba、精密));gydF4y2Ba
424gydF4y2Ba}gydF4y2Ba
425gydF4y2Bastr.append (gydF4y2Ba“)”gydF4y2Ba);gydF4y2Ba
426gydF4y2Ba
427gydF4y2Ba 如果gydF4y2Ba(xyzwpr_only) {gydF4y2Ba
428gydF4y2Ba 返回gydF4y2Bastr;gydF4y2Ba
429gydF4y2Ba}gydF4y2Ba
430gydF4y2Bastr.append (gydF4y2Ba“\ n”gydF4y2Ba);gydF4y2Ba
431gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 4;我+ +){gydF4y2Ba
432gydF4y2Bastr.append (gydF4y2Ba“(”gydF4y2Ba);gydF4y2Ba
433gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Baj = 0;j < 4;j + +) {gydF4y2Ba
434gydF4y2Bastr.append (QString::数量(行(我)[j],gydF4y2Ba“f”gydF4y2Ba、精密));gydF4y2Ba
435gydF4y2Ba 如果gydF4y2Ba(j < 3){gydF4y2Ba
436gydF4y2Bastr.append(分离器);gydF4y2Ba
437gydF4y2Ba}gydF4y2Ba
438gydF4y2Ba}gydF4y2Ba
439gydF4y2Bastr.append (gydF4y2Ba”);\ n”gydF4y2Ba);gydF4y2Ba
440gydF4y2Ba}gydF4y2Ba
441gydF4y2Ba 返回gydF4y2Bastr;gydF4y2Ba
442gydF4y2Ba}gydF4y2Ba
443gydF4y2Ba
444gydF4y2Ba 保龄球gydF4y2Ba 垫:FromStringgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &pose_str) {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
447gydF4y2Ba tXYZWPRgydF4y2Baxyzwpr;gydF4y2Ba
448gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 6;我+ +){gydF4y2Ba
449gydF4y2BaXyzwpr [i] = 0.0;gydF4y2Ba
450gydF4y2Ba}gydF4y2Ba
451gydF4y2Ba 如果gydF4y2Ba(nvalues < 6){gydF4y2Ba
452gydF4y2Ba FromXYZRPWgydF4y2Ba(xyzwpr);gydF4y2Ba
453gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
454gydF4y2Ba}gydF4y2Ba
455gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< nvalues;我+ +){gydF4y2Ba
456gydF4y2BaQString生态(values_list.at (i));gydF4y2Ba
457gydF4y2Baxyzwpr[i] = str .trim ().toDouble();gydF4y2Ba
458gydF4y2Ba}gydF4y2Ba
459gydF4y2Ba FromXYZRPWgydF4y2Ba(xyzwpr);gydF4y2Ba
460gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
461gydF4y2Ba}gydF4y2Ba
462gydF4y2Ba
463gydF4y2Ba
464gydF4y2Ba 垫gydF4y2Ba 垫:XYZRPW_2_MatgydF4y2Ba(gydF4y2Ba双gydF4y2Bax,gydF4y2Ba双gydF4y2Bay,gydF4y2Ba双gydF4y2Baz,gydF4y2Ba双gydF4y2Bar,gydF4y2Ba双gydF4y2Bap,gydF4y2Ba双gydF4y2Baw) {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 = sin(a);gydF4y2Ba
470gydF4y2Ba 双gydF4y2BaCb = cos(b);gydF4y2Ba
471gydF4y2Ba 双gydF4y2BaSb =罪恶(b);gydF4y2Ba
472gydF4y2Ba 双gydF4y2BaCc = cos(c);gydF4y2Ba
473gydF4y2Ba 双gydF4y2BaSc = sin(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
475gydF4y2Ba}gydF4y2Ba
476gydF4y2Ba 垫gydF4y2Ba 垫:XYZRPW_2_MatgydF4y2Ba(gydF4y2BatXYZWPRgydF4y2Baxyzwpr) {gydF4y2Ba
477gydF4y2Ba 返回gydF4y2Ba XYZRPW_2_MatgydF4y2Ba(xyzwpr[0], xyzwpr[1], xyzwpr[2], xyzwpr[3], xyzwpr[4], xyzwpr[5]);gydF4y2Ba
478gydF4y2Ba}gydF4y2Ba
479gydF4y2Ba
480gydF4y2Ba 无效gydF4y2Ba 垫:FromXYZRPWgydF4y2Ba(gydF4y2BatXYZWPRgydF4y2Baxyzwpr) {gydF4y2Ba
481gydF4y2Ba 垫gydF4y2Banewmat =gydF4y2Ba垫:XYZRPW_2_MatgydF4y2Ba(xyzwpr[0], xyzwpr[1], xyzwpr[2], xyzwpr[3], xyzwpr[4], xyzwpr[5]);gydF4y2Ba
482gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 4;我+ +){gydF4y2Ba
483gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Baj = 0;j < 4;j + +) {gydF4y2Ba
484gydF4y2Ba——>gydF4y2Ba集gydF4y2Ba(i, j newmat。gydF4y2Ba得到gydF4y2Ba(i, j));gydF4y2Ba
485gydF4y2Ba}gydF4y2Ba
486gydF4y2Ba}gydF4y2Ba
487gydF4y2Ba}gydF4y2Ba
488gydF4y2Ba
489gydF4y2Ba 常量gydF4y2Ba 双gydF4y2Ba*gydF4y2Ba垫:礼乐祭祀gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
490gydF4y2Ba 双gydF4y2Ba* _ddata16_non_const = (gydF4y2Ba双gydF4y2Ba*)gydF4y2Ba_ddata16gydF4y2Ba;gydF4y2Ba
491gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 16;+ + i) {gydF4y2Ba
492gydF4y2Ba_ddata16_non_const[i] = constData()[i];gydF4y2Ba
493gydF4y2Ba}gydF4y2Ba
494gydF4y2Ba 返回gydF4y2Ba _ddata16gydF4y2Ba;gydF4y2Ba
495gydF4y2Ba}gydF4y2Ba
496gydF4y2Ba 常量gydF4y2Ba 浮动gydF4y2Ba*gydF4y2Ba垫:ValuesFgydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
497gydF4y2Ba 返回gydF4y2BaconstData ();gydF4y2Ba
498gydF4y2Ba}gydF4y2Ba
499gydF4y2Ba
500gydF4y2Ba # ifdef ROBODK_API_FLOATSgydF4y2Ba
501gydF4y2Ba 常量gydF4y2Ba 浮动gydF4y2Ba*gydF4y2Ba垫:值gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
502gydF4y2Ba 返回gydF4y2BaconstData ();gydF4y2Ba
503gydF4y2Ba}gydF4y2Ba
504gydF4y2Ba 其他#gydF4y2Ba
505gydF4y2Ba 常量gydF4y2Ba 双gydF4y2Ba*gydF4y2Ba垫:值gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
506gydF4y2Ba 返回gydF4y2Ba 礼乐祭祀gydF4y2Ba();gydF4y2Ba
507gydF4y2Ba}gydF4y2Ba
508gydF4y2Ba
509gydF4y2Ba # endifgydF4y2Ba
510gydF4y2Ba
511gydF4y2Ba
512gydF4y2Ba
513gydF4y2Ba 无效gydF4y2Ba 垫:值gydF4y2Ba(gydF4y2Ba双gydF4y2Ba数据[16])gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
514gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 16;+ + i) {gydF4y2Ba
515gydF4y2Badata[i] = constData()[i];gydF4y2Ba
516gydF4y2Ba}gydF4y2Ba
517gydF4y2Ba}gydF4y2Ba
518gydF4y2Ba 无效gydF4y2Ba 垫:值gydF4y2Ba(gydF4y2Ba浮动gydF4y2Ba数据[16])gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
519gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 16;+ + i) {gydF4y2Ba
520gydF4y2Badata[i] = constData()[i];gydF4y2Ba
521gydF4y2Ba}gydF4y2Ba
522gydF4y2Ba}gydF4y2Ba
523gydF4y2Ba 保龄球gydF4y2Ba 垫:有效gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
524gydF4y2Ba 返回gydF4y2Ba _validgydF4y2Ba;gydF4y2Ba
525gydF4y2Ba}gydF4y2Ba
526gydF4y2Ba
527gydF4y2Ba 垫gydF4y2Ba 垫:translgydF4y2Ba(gydF4y2Ba双gydF4y2Bax,gydF4y2Ba双gydF4y2Bay,gydF4y2Ba双gydF4y2Baz) {gydF4y2Ba
528gydF4y2Ba 垫gydF4y2Ba垫;gydF4y2Ba
529gydF4y2Bamat.setToIdentity ();gydF4y2Ba
530gydF4y2Ba垫子上。gydF4y2BasetPosgydF4y2Ba(x, y, z);gydF4y2Ba
531gydF4y2Ba 返回gydF4y2Ba垫;gydF4y2Ba
532gydF4y2Ba}gydF4y2Ba
533gydF4y2Ba
534gydF4y2Ba 垫gydF4y2Ba 垫:rotxgydF4y2Ba(gydF4y2Ba双gydF4y2Barx) {gydF4y2Ba
535gydF4y2Ba 双gydF4y2BaCx = cos(rx);gydF4y2Ba
536gydF4y2Ba 双gydF4y2BaSx = sin(rx);gydF4y2Ba
537gydF4y2Ba 返回gydF4y2Ba 垫gydF4y2Ba(1,0,0,0,0,0, cx, -sx, 0,0, sx, cx, 0);gydF4y2Ba
538gydF4y2Ba}gydF4y2Ba
539gydF4y2Ba
540gydF4y2Ba 垫gydF4y2Ba 垫:rotygydF4y2Ba(gydF4y2Ba双gydF4y2Ba一){gydF4y2Ba
541gydF4y2Ba 双gydF4y2BaCy = cos(ry);gydF4y2Ba
542gydF4y2Ba 双gydF4y2BaSy = sin(ry);gydF4y2Ba
543gydF4y2Ba 返回gydF4y2Ba 垫gydF4y2Ba(cy, 0, sy, 0,0, 1,0,0, -sy, 0, cy, 0);gydF4y2Ba
544gydF4y2Ba}gydF4y2Ba
545gydF4y2Ba
546gydF4y2Ba 垫gydF4y2Ba 垫:rotzgydF4y2Ba(gydF4y2Ba双gydF4y2Barz) {gydF4y2Ba
547gydF4y2Ba 双gydF4y2BaCz = cos(rz);gydF4y2Ba
548gydF4y2Ba 双gydF4y2BaSz = sin(rz);gydF4y2Ba
549gydF4y2Ba 返回gydF4y2Ba 垫gydF4y2Ba(cz, -sz, 0,0, sz, cz, 0,0, 0,0, 1,0);gydF4y2Ba
550gydF4y2Ba}gydF4y2Ba
551gydF4y2Ba
552gydF4y2Ba
553gydF4y2Ba
554gydF4y2Ba
555gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
556gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
557gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
558gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
560gydF4y2Ba 项目:项目(gydF4y2BaRoboDKgydF4y2Ba*rdk, quint64 ptr, qint32 type) {gydF4y2Ba
561gydF4y2Ba _RDKgydF4y2Ba= rdk;gydF4y2Ba
562gydF4y2Ba _PTRgydF4y2Ba= ptr;gydF4y2Ba
563gydF4y2Ba _TYPEgydF4y2Ba=类型;gydF4y2Ba
564gydF4y2Ba}gydF4y2Ba
565gydF4y2Ba项目:项目(gydF4y2Ba常量gydF4y2Ba项目&其他){gydF4y2Ba
566gydF4y2Ba _RDKgydF4y2Ba= other._RDK;gydF4y2Ba
567gydF4y2Ba _PTRgydF4y2Ba= other._PTR;gydF4y2Ba
568gydF4y2Ba _TYPEgydF4y2Ba= other._TYPE;gydF4y2Ba
569gydF4y2Ba}gydF4y2Ba
570gydF4y2Ba项目::~项(){gydF4y2Ba
571gydF4y2Ba
572gydF4y2Ba}gydF4y2Ba
573gydF4y2Ba
574gydF4y2BaQString项目::ToString ()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
575gydF4y2Ba 如果gydF4y2Ba(这- - - - - - >gydF4y2Ba有效的gydF4y2Ba()) {gydF4y2Ba
576gydF4y2Ba 返回gydF4y2BaQString (gydF4y2Ba"Item(&RDK, %1, %2);/ / % 3”gydF4y2Ba) .arg (gydF4y2Ba_PTRgydF4y2Ba) .arg (gydF4y2Ba_TYPEgydF4y2Ba) .arg (gydF4y2Ba的名字gydF4y2Ba());gydF4y2Ba
577gydF4y2Ba}gydF4y2Ba
578gydF4y2Ba 返回gydF4y2Ba “项(无效)gydF4y2Ba;gydF4y2Ba
579gydF4y2Ba}gydF4y2Ba
580gydF4y2Ba
581gydF4y2Ba
587gydF4y2Ba 返回gydF4y2Ba _RDKgydF4y2Ba;gydF4y2Ba
588gydF4y2Ba}gydF4y2Ba
589gydF4y2Ba
593gydF4y2Ba 无效gydF4y2Ba 项目::NewLinkgydF4y2Ba(){gydF4y2Ba
594gydF4y2Ba _RDKgydF4y2Ba=gydF4y2Ba新gydF4y2Ba RoboDKgydF4y2Ba();gydF4y2Ba
595gydF4y2Ba}gydF4y2Ba
596gydF4y2Ba
602gydF4y2Ba intgydF4y2Ba 项目::类型gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
603gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
607gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
608gydF4y2Ba 返回gydF4y2Baitemtype;gydF4y2Ba
609gydF4y2Ba}gydF4y2Ba
610gydF4y2Ba
612gydF4y2Ba
617gydF4y2Ba 无效gydF4y2Ba 项目::保存gydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString文件名){gydF4y2Ba
618gydF4y2Ba _RDKgydF4y2Ba->gydF4y2Ba保存gydF4y2Ba(文件名,gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
619gydF4y2Ba}gydF4y2Ba
620gydF4y2Ba
624gydF4y2Ba 无效gydF4y2Ba 项目::删除gydF4y2Ba(){gydF4y2Ba
625gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
626gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“删除”gydF4y2Ba);gydF4y2Ba
627gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
628gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
629gydF4y2Ba _PTRgydF4y2Ba= 0;gydF4y2Ba
630gydF4y2Ba _TYPEgydF4y2Ba= 1;gydF4y2Ba
631gydF4y2Ba}gydF4y2Ba
632gydF4y2Ba
637gydF4y2Ba 保龄球gydF4y2Ba 项目::有效gydF4y2Ba(gydF4y2Ba保龄球gydF4y2Bacheck_deleted)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
638gydF4y2Ba 如果gydF4y2Ba(check_deleted) {gydF4y2Ba
639gydF4y2Ba 返回gydF4y2Ba 类型gydF4y2Ba() > 0;gydF4y2Ba
640gydF4y2Ba}gydF4y2Ba
641gydF4y2Ba 返回gydF4y2Ba _PTRgydF4y2Ba! = 0;gydF4y2Ba
642gydF4y2Ba}gydF4y2Ba
647gydF4y2Ba 无效gydF4y2Ba 项目::setParentgydF4y2Ba(gydF4y2Ba项gydF4y2Ba父){gydF4y2Ba
648gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
649gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Parent”gydF4y2Ba);gydF4y2Ba
650gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
651gydF4y2Ba _RDKgydF4y2Ba- > _send_Item(父);gydF4y2Ba
652gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
653gydF4y2Ba}gydF4y2Ba
654gydF4y2Ba
660gydF4y2Ba 无效gydF4y2Ba 项目::setParentStaticgydF4y2Ba(gydF4y2Ba项gydF4y2Ba父){gydF4y2Ba
661gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
662gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Parent_Static”gydF4y2Ba);gydF4y2Ba
663gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
664gydF4y2Ba _RDKgydF4y2Ba- > _send_Item(父);gydF4y2Ba
665gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
666gydF4y2Ba}gydF4y2Ba
667gydF4y2Ba
673gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
674gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Attach_Closest”gydF4y2Ba);gydF4y2Ba
675gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
676gydF4y2Ba 项gydF4y2Baitem_attached =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Item ();gydF4y2Ba
677gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
678gydF4y2Ba 返回gydF4y2Baitem_attached;gydF4y2Ba
679gydF4y2Ba}gydF4y2Ba
680gydF4y2Ba
686gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
687gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Detach_Closest”gydF4y2Ba);gydF4y2Ba
688gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
689gydF4y2Ba _RDKgydF4y2Ba- > _send_Item(父);gydF4y2Ba
690gydF4y2Ba 项gydF4y2Baitem_detached =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Item ();gydF4y2Ba
691gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
692gydF4y2Ba 返回gydF4y2Baitem_detached;gydF4y2Ba
693gydF4y2Ba}gydF4y2Ba
694gydF4y2Ba
698gydF4y2Ba 无效gydF4y2Ba 项目::DetachAllgydF4y2Ba(gydF4y2Ba项gydF4y2Ba父){gydF4y2Ba
699gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
700gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Detach_All”gydF4y2Ba);gydF4y2Ba
701gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
702gydF4y2Ba _RDKgydF4y2Ba- > _send_Item(父);gydF4y2Ba
703gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
704gydF4y2Ba}gydF4y2Ba
705gydF4y2Ba
706gydF4y2Ba
711gydF4y2Ba 项gydF4y2Ba 项目::父gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
712gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
713gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Parent”gydF4y2Ba);gydF4y2Ba
714gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
715gydF4y2Ba 项gydF4y2Baitm_parent =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Item ();gydF4y2Ba
716gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
717gydF4y2Ba 返回gydF4y2Baitm_parent;gydF4y2Ba
718gydF4y2Ba}gydF4y2Ba
719gydF4y2Ba
720gydF4y2Ba
726gydF4y2BaQList <项目>gydF4y2Ba项目::孩子gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
727gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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(gydF4y2BaintgydF4y2BaI = 0;I < nitems;我+ +)gydF4y2Ba
733gydF4y2Ba{gydF4y2Ba
734gydF4y2Baitemlist.append (gydF4y2Ba_RDKgydF4y2Ba- > _recv_Item ());gydF4y2Ba
735gydF4y2Ba}gydF4y2Ba
736gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
737gydF4y2Ba 返回gydF4y2Baitemlist;gydF4y2Ba
738gydF4y2Ba}gydF4y2Ba
739gydF4y2Ba
744gydF4y2Ba 保龄球gydF4y2Ba 项目::可见gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
745gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
746gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Visible”gydF4y2Ba);gydF4y2Ba
747gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
748gydF4y2Ba intgydF4y2Ba可见=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
749gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
750gydF4y2Ba 返回gydF4y2Ba(可见!= 0);gydF4y2Ba
751gydF4y2Ba}gydF4y2Ba
757gydF4y2Ba 无效gydF4y2Ba 项目::setVisiblegydF4y2Ba(gydF4y2Ba保龄球gydF4y2Ba可见,gydF4y2BaintgydF4y2Bavisible_frame) {gydF4y2Ba
758gydF4y2Ba 如果gydF4y2Ba(visible_frame < 0)gydF4y2Ba
759gydF4y2Ba{gydF4y2Ba
760gydF4y2BaVisible_frame = visible ?1: 0;gydF4y2Ba
761gydF4y2Ba}gydF4y2Ba
762gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
763gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Visible”gydF4y2Ba);gydF4y2Ba
764gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
765gydF4y2Ba _RDKgydF4y2Ba- > _send_Int(可见?1: 0);gydF4y2Ba
766gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (visible_frame);gydF4y2Ba
767gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
768gydF4y2Ba}gydF4y2Ba
769gydF4y2Ba
774gydF4y2BaQStringgydF4y2Ba项目:名称gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
775gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
776gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Name”gydF4y2Ba);gydF4y2Ba
777gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
778gydF4y2BaQString名称=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
779gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
780gydF4y2Ba 返回gydF4y2Ba名称;gydF4y2Ba
781gydF4y2Ba}gydF4y2Ba
782gydF4y2Ba
787gydF4y2Ba 无效gydF4y2Ba 项目::setNamegydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString名字){gydF4y2Ba
788gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
789gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Name”gydF4y2Ba);gydF4y2Ba
790gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
791gydF4y2Ba _RDKgydF4y2Ba- > _send_Line(名称);gydF4y2Ba
792gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
793gydF4y2Ba}gydF4y2Ba
794gydF4y2Ba
795gydF4y2Ba //添加更多方法gydF4y2Ba
796gydF4y2Ba
802gydF4y2Ba 无效gydF4y2Ba 项目::setPosegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba姿势){gydF4y2Ba
803gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
804gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Hlocal”gydF4y2Ba);gydF4y2Ba
805gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
806gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose(构成);gydF4y2Ba
807gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
808gydF4y2Ba}gydF4y2Ba
809gydF4y2Ba
815gydF4y2Ba 垫gydF4y2Ba 项目::构成gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
816gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
817gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Hlocal”gydF4y2Ba);gydF4y2Ba
818gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
819gydF4y2Ba 垫gydF4y2Ba提出了=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Pose ();gydF4y2Ba
820gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
821gydF4y2Ba 返回gydF4y2Ba构成;gydF4y2Ba
822gydF4y2Ba}gydF4y2Ba
823gydF4y2Ba
828gydF4y2Ba 无效gydF4y2Ba 项目::setGeometryPosegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba姿势){gydF4y2Ba
829gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
830gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Hgeom”gydF4y2Ba);gydF4y2Ba
831gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
832gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose(构成);gydF4y2Ba
833gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
834gydF4y2Ba}gydF4y2Ba
835gydF4y2Ba
841gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
842gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Hgeom”gydF4y2Ba);gydF4y2Ba
843gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
844gydF4y2Ba 垫gydF4y2Ba提出了=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Pose ();gydF4y2Ba
845gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
846gydF4y2Ba 返回gydF4y2Ba构成;gydF4y2Ba
847gydF4y2Ba}gydF4y2Ba
848gydF4y2Ba /*gydF4y2Ba
853gydF4y2Ba void Item::setHtool(Mat pose){gydF4y2Ba
854gydF4y2Ba _RDK - > _check_connection ();gydF4y2Ba
855gydF4y2Ba _RDK - > _send_Line(“S_Htool”);gydF4y2Ba
856gydF4y2Ba _RDK - > _send_Item(这个);gydF4y2Ba
857gydF4y2Ba _RDK - > _send_Pose(构成);gydF4y2Ba
858gydF4y2Ba _RDK - > _check_status ();gydF4y2Ba
859gydF4y2Ba }gydF4y2Ba
860gydF4y2Ba
866gydF4y2Ba 垫项目::Htool () {gydF4y2Ba
867gydF4y2Ba _RDK - > _check_connection ();gydF4y2Ba
868gydF4y2Ba _RDK - > _send_Line(“G_Htool”);gydF4y2Ba
869gydF4y2Ba _RDK - > _send_Item(这个);gydF4y2Ba
870gydF4y2Ba Mat pose = _RDK->_recv_Pose();gydF4y2Ba
871gydF4y2Ba _RDK - > _check_status ();gydF4y2Ba
872gydF4y2Ba 返回的姿势;gydF4y2Ba
873gydF4y2Ba }gydF4y2Ba
874gydF4y2Ba * /gydF4y2Ba
880gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
881gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Tool”gydF4y2Ba);gydF4y2Ba
882gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
883gydF4y2Ba 垫gydF4y2Ba提出了=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Pose ();gydF4y2Ba
884gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
885gydF4y2Ba 返回gydF4y2Ba构成;gydF4y2Ba
886gydF4y2Ba}gydF4y2Ba
887gydF4y2Ba
893gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
894gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Frame”gydF4y2Ba);gydF4y2Ba
895gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
896gydF4y2Ba 垫gydF4y2Ba提出了=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Pose ();gydF4y2Ba
897gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
898gydF4y2Ba 返回gydF4y2Ba构成;gydF4y2Ba
899gydF4y2Ba}gydF4y2Ba
900gydF4y2Ba
906gydF4y2Ba 无效gydF4y2Ba 项目::setPoseFramegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Baframe_pose) {gydF4y2Ba
907gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
908gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Frame”gydF4y2Ba);gydF4y2Ba
909gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose (frame_pose);gydF4y2Ba
910gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
911gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
912gydF4y2Ba}gydF4y2Ba
913gydF4y2Ba
919gydF4y2Ba 无效gydF4y2Ba 项目::setPoseFramegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Baframe_item) {gydF4y2Ba
920gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
921gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Frame_ptr”gydF4y2Ba);gydF4y2Ba
922gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (frame_item);gydF4y2Ba
923gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
924gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
925gydF4y2Ba}gydF4y2Ba
926gydF4y2Ba
932gydF4y2Ba 无效gydF4y2Ba 项目::setPoseToolgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Batool_pose) {gydF4y2Ba
933gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
934gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Tool”gydF4y2Ba);gydF4y2Ba
935gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose (tool_pose);gydF4y2Ba
936gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
937gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
938gydF4y2Ba}gydF4y2Ba
939gydF4y2Ba
945gydF4y2Ba 无效gydF4y2Ba 项目::setPoseToolgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Batool_item) {gydF4y2Ba
946gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
947gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Tool_ptr”gydF4y2Ba);gydF4y2Ba
948gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (tool_item);gydF4y2Ba
949gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
950gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
951gydF4y2Ba}gydF4y2Ba
952gydF4y2Ba
957gydF4y2Ba 无效gydF4y2Ba 项目::setPoseAbsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba姿势){gydF4y2Ba
958gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
959gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Hlocal_Abs”gydF4y2Ba);gydF4y2Ba
960gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
961gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose(构成);gydF4y2Ba
962gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
963gydF4y2Ba
964gydF4y2Ba}gydF4y2Ba
965gydF4y2Ba
971gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
972gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Hlocal_Abs”gydF4y2Ba);gydF4y2Ba
973gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
974gydF4y2Ba 垫gydF4y2Ba提出了=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Pose ();gydF4y2Ba
975gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
976gydF4y2Ba 返回gydF4y2Ba构成;gydF4y2Ba
977gydF4y2Ba}gydF4y2Ba
978gydF4y2Ba
983gydF4y2Ba 无效gydF4y2Ba 项目::改变颜色gydF4y2Ba(gydF4y2Ba双gydF4y2BacolorRGBA [4]) {gydF4y2Ba
984gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
985gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Color”gydF4y2Ba);gydF4y2Ba
986gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
987gydF4y2Ba _RDKgydF4y2Ba- > _send_Array (colorRGBA 4);gydF4y2Ba
988gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
989gydF4y2Ba
990gydF4y2Ba}gydF4y2Ba
991gydF4y2Ba
996gydF4y2Ba
997gydF4y2Ba
1003gydF4y2Ba 无效gydF4y2Ba 项目::规模gydF4y2Ba(gydF4y2Ba双gydF4y2Ba规模){gydF4y2Ba
1004gydF4y2Ba 双gydF4y2Bascale_xyz [3];gydF4y2Ba
1005gydF4y2BaScale_xyz [0] = scale;gydF4y2Ba
1006gydF4y2BaScale_xyz [1] = scale;gydF4y2Ba
1007gydF4y2BaScale_xyz [2] = scale;gydF4y2Ba
1008gydF4y2Ba 规模gydF4y2Ba(scale_xyz);gydF4y2Ba
1009gydF4y2Ba}gydF4y2Ba
1010gydF4y2Ba
1016gydF4y2Ba 无效gydF4y2Ba 项目::规模gydF4y2Ba(gydF4y2Ba双gydF4y2Bascale_xyz [3]) {gydF4y2Ba
1017gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1018gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“规模”gydF4y2Ba);gydF4y2Ba
1019gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1020gydF4y2Ba _RDKgydF4y2Ba- > _send_Array (scale_xyz 3);gydF4y2Ba
1021gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1022gydF4y2Ba}gydF4y2Ba
1023gydF4y2Ba
1024gydF4y2Ba
1025gydF4y2Ba
1026gydF4y2Ba
1036gydF4y2Ba 项gydF4y2Ba 项目::setMachiningParametersgydF4y2Ba(QString ncfile,gydF4y2Ba项gydF4y2Bapart_obj, QString选项)gydF4y2Ba
1037gydF4y2Ba{gydF4y2Ba
1038gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1039gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_MachiningParams”gydF4y2Ba);gydF4y2Ba
1040gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1041gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (ncfile);gydF4y2Ba
1042gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (part_obj);gydF4y2Ba
1043gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“NO_UPDATE”gydF4y2Ba+选项);gydF4y2Ba
1044gydF4y2Ba _RDKgydF4y2Ba-> _timeout = 3600 * 1000;gydF4y2Ba
1045gydF4y2Ba 项gydF4y2Ba程序=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Item ();gydF4y2Ba
1046gydF4y2Ba _RDKgydF4y2Ba-> _timeout = robodk_api_timeout;gydF4y2Ba
1047gydF4y2Ba 双gydF4y2Ba状态=gydF4y2Ba_RDKgydF4y2Ba->_recv_Int() / 1000.0;gydF4y2Ba
1048gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1049gydF4y2Ba 返回gydF4y2Ba程序;gydF4y2Ba
1050gydF4y2Ba}gydF4y2Ba
1051gydF4y2Ba
1056gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1057gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Target_As_RT”gydF4y2Ba);gydF4y2Ba
1058gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1059gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1060gydF4y2Ba}gydF4y2Ba
1061gydF4y2Ba
1065gydF4y2Ba 无效gydF4y2Ba 项目::setAsJointTargetgydF4y2Ba(){gydF4y2Ba
1066gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1067gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Target_As_JT”gydF4y2Ba);gydF4y2Ba
1068gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1069gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1070gydF4y2Ba}gydF4y2Ba
1071gydF4y2Ba
1075gydF4y2Ba 保龄球gydF4y2Ba 项目::isJointTargetgydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
1076gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
1080gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1081gydF4y2Ba 返回gydF4y2BaIs_jt > 0;gydF4y2Ba
1082gydF4y2Ba}gydF4y2Ba
1083gydF4y2Ba
1084gydF4y2Ba //#####机器人项目调用####gydF4y2Ba
1085gydF4y2Ba
1090gydF4y2Ba tJointsgydF4y2Ba 项目::关节gydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
1091gydF4y2Ba tJointsgydF4y2Bajnts;gydF4y2Ba
1092gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1093gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Thetas”gydF4y2Ba);gydF4y2Ba
1094gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1095gydF4y2Ba _RDKgydF4y2Ba- > _recv_Array (&jnts);gydF4y2Ba
1096gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1097gydF4y2Ba 返回gydF4y2Bajnts;gydF4y2Ba
1098gydF4y2Ba}gydF4y2Ba
1099gydF4y2Ba
1100gydF4y2Ba //添加更多方法gydF4y2Ba
1101gydF4y2Ba
1106gydF4y2Ba tJointsgydF4y2Ba 项目::JointsHomegydF4y2Ba()gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
1107gydF4y2Ba tJointsgydF4y2Bajnts;gydF4y2Ba
1108gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1109gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Home”gydF4y2Ba);gydF4y2Ba
1110gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1111gydF4y2Ba _RDKgydF4y2Ba- > _recv_Array (&jnts);gydF4y2Ba
1112gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1113gydF4y2Ba 返回gydF4y2Bajnts;gydF4y2Ba
1114gydF4y2Ba}gydF4y2Ba
1115gydF4y2Ba
1116gydF4y2Ba
1121gydF4y2Ba 无效gydF4y2Ba 项目::setJointsHomegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba&jnts) {gydF4y2Ba
1122gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1123gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Home”gydF4y2Ba);gydF4y2Ba
1124gydF4y2Ba _RDKgydF4y2Ba- > _send_Array (&jnts);gydF4y2Ba
1125gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1126gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1127gydF4y2Ba}gydF4y2Ba
1128gydF4y2Ba
1134gydF4y2Ba 项gydF4y2Ba 项目::ObjectLinkgydF4y2Ba(gydF4y2BaintgydF4y2Balink_id) {gydF4y2Ba
1135gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1136gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_LinkObjId”gydF4y2Ba);gydF4y2Ba
1137gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1138gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (link_id);gydF4y2Ba
1139gydF4y2Ba 项gydF4y2Ba项=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Item ();gydF4y2Ba
1140gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1141gydF4y2Ba 返回gydF4y2Ba项;gydF4y2Ba
1142gydF4y2Ba}gydF4y2Ba
1143gydF4y2Ba
1149gydF4y2Ba 项gydF4y2Ba 项目::getLinkgydF4y2Ba(gydF4y2BaintgydF4y2Batype_linked) {gydF4y2Ba
1150gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1151gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_LinkType”gydF4y2Ba);gydF4y2Ba
1152gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1153gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (type_linked);gydF4y2Ba
1154gydF4y2Ba 项gydF4y2Ba项=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Item ();gydF4y2Ba
1155gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1156gydF4y2Ba 返回gydF4y2Ba项;gydF4y2Ba
1157gydF4y2Ba}gydF4y2Ba
1158gydF4y2Ba
1159gydF4y2Ba
1164gydF4y2Ba 无效gydF4y2Ba 项目::setJointsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba&jnts) {gydF4y2Ba
1165gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1166gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Thetas”gydF4y2Ba);gydF4y2Ba
1167gydF4y2Ba _RDKgydF4y2Ba- > _send_Array (&jnts);gydF4y2Ba
1168gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1169gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1170gydF4y2Ba}gydF4y2Ba
1171gydF4y2Ba
1177gydF4y2Ba 无效gydF4y2Ba 项目::JointLimitsgydF4y2Ba(gydF4y2BatJointsgydF4y2Ba* lower_limits,gydF4y2BatJointsgydF4y2Ba* upper_limits) {gydF4y2Ba
1178gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
1184gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1185gydF4y2Ba}gydF4y2Ba
1186gydF4y2Ba
1192gydF4y2Ba 无效gydF4y2Ba 项目::setJointLimitsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba&lower_limits,gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba&upper_limits) {gydF4y2Ba
1193gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
1198gydF4y2Ba //double joints_type = _RDK->_recv_Int() / 1000.0;gydF4y2Ba
1199gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1200gydF4y2Ba}gydF4y2Ba
1201gydF4y2Ba
1207gydF4y2Ba 无效gydF4y2Ba 项目::setRobotgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba机器人){gydF4y2Ba
1208gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1209gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_Robot”gydF4y2Ba);gydF4y2Ba
1210gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1211gydF4y2Ba _RDKgydF4y2Ba- > _send_Item(机器人);gydF4y2Ba
1212gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1213gydF4y2Ba}gydF4y2Ba
1214gydF4y2Ba
1215gydF4y2Ba
1222gydF4y2Ba 项gydF4y2Ba 项目::AddToolgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba&tool_pose,gydF4y2Ba常量gydF4y2BaQString &tool_name) {gydF4y2Ba
1223gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1224gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“AddToolEmpty”gydF4y2Ba);gydF4y2Ba
1225gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1226gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose (tool_pose);gydF4y2Ba
1227gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (tool_name);gydF4y2Ba
1228gydF4y2Ba 项gydF4y2Banewtool =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Item ();gydF4y2Ba
1229gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1230gydF4y2Ba 返回gydF4y2Banewtool;gydF4y2Ba
1231gydF4y2Ba}gydF4y2Ba
1232gydF4y2Ba
1238gydF4y2Ba 垫gydF4y2Ba 项目::SolveFKgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba关节,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba*工具,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba* ref) {gydF4y2Ba
1239gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1240gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_FK”gydF4y2Ba);gydF4y2Ba
1241gydF4y2Ba _RDKgydF4y2Ba- > _send_Array(关节);gydF4y2Ba
1242gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1243gydF4y2Ba 垫gydF4y2Ba提出了=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Pose ();gydF4y2Ba
1244gydF4y2Ba 垫gydF4y2Babase2flange(构成);gydF4y2Ba
1245gydF4y2Ba 如果gydF4y2Ba(工具! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
1246gydF4y2Babase2法兰=姿态*(*工具);gydF4y2Ba
1247gydF4y2Ba}gydF4y2Ba
1248gydF4y2Ba 如果gydF4y2Ba(ref ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
1249gydF4y2Babase2法兰= ref->gydF4y2Ba发票gydF4y2Ba() *底座法兰;gydF4y2Ba
1250gydF4y2Ba}gydF4y2Ba
1251gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1252gydF4y2Ba 返回gydF4y2Babase2flange;gydF4y2Ba
1253gydF4y2Ba}gydF4y2Ba
1254gydF4y2Ba
1260gydF4y2Ba 无效gydF4y2Ba 项目::JointsConfiggydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba关节,gydF4y2BatConfiggydF4y2Ba配置){gydF4y2Ba
1261gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1262gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_Thetas_Config”gydF4y2Ba);gydF4y2Ba
1263gydF4y2Ba _RDKgydF4y2Ba- > _send_Array(关节);gydF4y2Ba
1264gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1265gydF4y2Ba intgydF4y2Basz = RDK_SIZE_MAX_CONFIG;gydF4y2Ba
1266gydF4y2Ba _RDKgydF4y2Ba- > _recv_Array(配置、深圳);gydF4y2Ba
1267gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1268gydF4y2Ba / /返回配置;gydF4y2Ba
1269gydF4y2Ba}gydF4y2Ba
1270gydF4y2Ba
1278gydF4y2Ba tJointsgydF4y2Ba 项目::SolveIKgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba姿势,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba*工具,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba* ref) {gydF4y2Ba
1279gydF4y2Ba tJointsgydF4y2Bajnts;gydF4y2Ba
1280gydF4y2Ba 垫gydF4y2Babase2flange(构成);gydF4y2Ba
1281gydF4y2Ba 如果gydF4y2Ba(工具! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
1282gydF4y2Babase2法兰=姿态*工具->gydF4y2Ba发票gydF4y2Ba();gydF4y2Ba
1283gydF4y2Ba}gydF4y2Ba
1284gydF4y2Ba 如果gydF4y2Ba(ref ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
1285gydF4y2Babase2法兰= (*ref) * base2法兰;gydF4y2Ba
1286gydF4y2Ba}gydF4y2Ba
1287gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1288gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_IK”gydF4y2Ba);gydF4y2Ba
1289gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose (base2flange);gydF4y2Ba
1290gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1291gydF4y2Ba _RDKgydF4y2Ba- > _recv_Array (&jnts);gydF4y2Ba
1292gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1293gydF4y2Ba 返回gydF4y2Bajnts;gydF4y2Ba
1294gydF4y2Ba}gydF4y2Ba
1295gydF4y2Ba
1296gydF4y2Ba
1297gydF4y2Ba
1306gydF4y2Ba tJointsgydF4y2Ba 项目::SolveIKgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba姿势,gydF4y2BatJointsgydF4y2Bajoints_approx,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba*工具,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba* ref) {gydF4y2Ba
1307gydF4y2Ba 垫gydF4y2Babase2flange(构成);gydF4y2Ba
1308gydF4y2Ba 如果gydF4y2Ba(工具! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
1309gydF4y2Babase2法兰=姿态*工具->gydF4y2Ba发票gydF4y2Ba();gydF4y2Ba
1310gydF4y2Ba}gydF4y2Ba
1311gydF4y2Ba 如果gydF4y2Ba(ref ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
1312gydF4y2Babase2法兰= (*ref) * base2法兰;gydF4y2Ba
1313gydF4y2Ba}gydF4y2Ba
1314gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
1319gydF4y2Ba tJointsgydF4y2Bajnts;gydF4y2Ba
1320gydF4y2Ba _RDKgydF4y2Ba- > _recv_Array (&jnts);gydF4y2Ba
1321gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1322gydF4y2Ba 返回gydF4y2Bajnts;gydF4y2Ba
1323gydF4y2Ba}gydF4y2Ba
1324gydF4y2Ba
1325gydF4y2Ba
1331gydF4y2Ba tMatrix2DgydF4y2Ba*gydF4y2Ba项目::SolveIK_All_Mat2DgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba姿势,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba*工具,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba* ref) {gydF4y2Ba
1332gydF4y2Ba tMatrix2DgydF4y2Ba* mat2d =gydF4y2BanullptrgydF4y2Ba;gydF4y2Ba
1333gydF4y2Ba 垫gydF4y2Babase2flange(构成);gydF4y2Ba
1334gydF4y2Ba 如果gydF4y2Ba(工具! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
1335gydF4y2Babase2法兰=姿态*工具->gydF4y2Ba发票gydF4y2Ba();gydF4y2Ba
1336gydF4y2Ba}gydF4y2Ba
1337gydF4y2Ba 如果gydF4y2Ba(ref ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
1338gydF4y2Babase2法兰= (*ref) * base2法兰;gydF4y2Ba
1339gydF4y2Ba}gydF4y2Ba
1340gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1341gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_IK_cmpl”gydF4y2Ba);gydF4y2Ba
1342gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose (base2flange);gydF4y2Ba
1343gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1344gydF4y2Ba _RDKgydF4y2Ba- > _recv_Matrix2D (&mat2d);gydF4y2Ba
1345gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1346gydF4y2Ba 返回gydF4y2Bamat2d;gydF4y2Ba
1347gydF4y2Ba}gydF4y2Ba
1348gydF4y2BaQList < tJoints >gydF4y2Ba项目::SolveIK_AllgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba姿势,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba*工具,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba* ref) {gydF4y2Ba
1349gydF4y2Ba tMatrix2DgydF4y2Ba* mat2d =gydF4y2BaSolveIK_All_Mat2DgydF4y2Ba(姿态,工具,ref);gydF4y2Ba
1350gydF4y2BaQList < tJoints > jnts_list;gydF4y2Ba
1351gydF4y2Ba intgydF4y2Bandofs =gydF4y2BaMatrix2D_SizegydF4y2Ba(mat2d, 1) - 2;gydF4y2Ba
1352gydF4y2Ba intgydF4y2Bansol =gydF4y2BaMatrix2D_SizegydF4y2Ba(mat2d, 2);gydF4y2Ba
1353gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< nsol;我+ +){gydF4y2Ba
1354gydF4y2Ba tJointsgydF4y2Bajnts =gydF4y2BatJointsgydF4y2Ba(我mat2d);gydF4y2Ba
1355gydF4y2Bajnts。gydF4y2BasetLengthgydF4y2Ba(jnts。gydF4y2Ba长度gydF4y2Ba() - 2);gydF4y2Ba
1356gydF4y2Bajnts_list.append (jnts);gydF4y2Ba
1357gydF4y2Ba}gydF4y2Ba
1358gydF4y2Ba 返回gydF4y2Bajnts_list;gydF4y2Ba
1359gydF4y2Ba}gydF4y2Ba
1360gydF4y2Ba
1366gydF4y2Ba 保龄球gydF4y2Ba 项:连接gydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &robot_ip) {gydF4y2Ba
1367gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1368gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“连接”gydF4y2Ba);gydF4y2Ba
1369gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1370gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (robot_ip);gydF4y2Ba
1371gydF4y2Ba intgydF4y2Ba状态=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1372gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1373gydF4y2Ba 返回gydF4y2Ba状态!= 0;gydF4y2Ba
1374gydF4y2Ba}gydF4y2Ba
1375gydF4y2Ba
1380gydF4y2Ba 保龄球gydF4y2Ba 项目::断开gydF4y2Ba(){gydF4y2Ba
1381gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1382gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“断开”gydF4y2Ba);gydF4y2Ba
1383gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1384gydF4y2Ba intgydF4y2Ba状态=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1385gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1386gydF4y2Ba 返回gydF4y2Ba状态!= 0;gydF4y2Ba
1387gydF4y2Ba}gydF4y2Ba
1388gydF4y2Ba
1394gydF4y2Ba 无效gydF4y2Ba 项目::MoveJgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba技能,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1395gydF4y2Ba 如果gydF4y2Ba(gydF4y2Ba_TYPEgydF4y2Ba= =gydF4y2BaRoboDK: ITEM_TYPE_PROGRAMgydF4y2Ba){gydF4y2Ba
1396gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1397gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Add_INSMOVE”gydF4y2Ba);gydF4y2Ba
1398gydF4y2Ba _RDKgydF4y2Ba- > _send_Item(技能);gydF4y2Ba
1399gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1400gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (1);gydF4y2Ba
1401gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1402gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
1403gydF4y2Ba _RDKgydF4y2Ba- > _moveX(技能,gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba,gydF4y2Ba这gydF4y2Ba, 1,阻塞);gydF4y2Ba
1404gydF4y2Ba}gydF4y2Ba
1405gydF4y2Ba}gydF4y2Ba
1406gydF4y2Ba
1412gydF4y2Ba 无效gydF4y2Ba 项目::MoveJgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba关节,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1413gydF4y2Ba _RDKgydF4y2Ba- > _moveX (gydF4y2BanullptrgydF4y2Ba关节,gydF4y2BanullptrgydF4y2Ba,gydF4y2Ba这gydF4y2Ba, 1,阻塞);gydF4y2Ba
1414gydF4y2Ba}gydF4y2Ba
1415gydF4y2Ba
1421gydF4y2Ba 无效gydF4y2Ba 项目::MoveJgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba及目标,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1422gydF4y2Ba _RDKgydF4y2Ba- > _moveX (gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba及目标,gydF4y2Ba这gydF4y2Ba, 1,阻塞);gydF4y2Ba
1423gydF4y2Ba}gydF4y2Ba
1424gydF4y2Ba
1430gydF4y2Ba 无效gydF4y2Ba 项目::MoveLgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba技能,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1431gydF4y2Ba 如果gydF4y2Ba(gydF4y2Ba_TYPEgydF4y2Ba= =gydF4y2BaRoboDK: ITEM_TYPE_PROGRAMgydF4y2Ba){gydF4y2Ba
1432gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1433gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Add_INSMOVE”gydF4y2Ba);gydF4y2Ba
1434gydF4y2Ba _RDKgydF4y2Ba- > _send_Item(技能);gydF4y2Ba
1435gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1436gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (2);gydF4y2Ba
1437gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1438gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
1439gydF4y2Ba _RDKgydF4y2Ba- > _moveX(技能,gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba,gydF4y2Ba这gydF4y2Ba, 2,阻塞);gydF4y2Ba
1440gydF4y2Ba}gydF4y2Ba
1441gydF4y2Ba}gydF4y2Ba
1442gydF4y2Ba
1448gydF4y2Ba 无效gydF4y2Ba 项目::MoveLgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba关节,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1449gydF4y2Ba _RDKgydF4y2Ba- > _moveX (gydF4y2BanullptrgydF4y2Ba关节,gydF4y2BanullptrgydF4y2Ba,gydF4y2Ba这gydF4y2Ba, 2,阻塞);gydF4y2Ba
1450gydF4y2Ba}gydF4y2Ba
1451gydF4y2Ba
1457gydF4y2Ba 无效gydF4y2Ba 项目::MoveLgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba及目标,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1458gydF4y2Ba _RDKgydF4y2Ba- > _moveX (gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba及目标,gydF4y2Ba这gydF4y2Ba, 2,阻塞);gydF4y2Ba
1459gydF4y2Ba}gydF4y2Ba
1460gydF4y2Ba
1467gydF4y2Ba 无效gydF4y2Ba 项目::MoveCgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba&itemtarget1,gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba&itemtarget2,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1468gydF4y2Ba _RDKgydF4y2Ba- > _moveC (&itemtarget1gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba&itemtarget2,gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba,gydF4y2Ba这gydF4y2Ba,屏蔽);gydF4y2Ba
1469gydF4y2Ba}gydF4y2Ba
1470gydF4y2Ba
1477gydF4y2Ba 无效gydF4y2Ba 项目::MoveCgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba&joints1,gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba&joints2,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1478gydF4y2Ba _RDKgydF4y2Ba- > _moveC (gydF4y2BanullptrgydF4y2Ba&joints1,gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba&joints2,gydF4y2BanullptrgydF4y2Ba,gydF4y2Ba这gydF4y2Ba,屏蔽);gydF4y2Ba
1479gydF4y2Ba}gydF4y2Ba
1480gydF4y2Ba
1487gydF4y2Ba 无效gydF4y2Ba 项目::MoveCgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba&target1,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba&target2,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
1488gydF4y2Ba _RDKgydF4y2Ba- > _moveC (gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba&target1,gydF4y2BanullptrgydF4y2Ba,gydF4y2BanullptrgydF4y2Ba&target2,gydF4y2Ba这gydF4y2Ba,屏蔽);gydF4y2Ba
1489gydF4y2Ba}gydF4y2Ba
1490gydF4y2Ba
1498gydF4y2Ba intgydF4y2Ba 项目::MoveJ_TestgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Baj - 1,gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Baj2,gydF4y2Ba双gydF4y2Baminstep_deg) {gydF4y2Ba
1499gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1500gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“CollisionMove”gydF4y2Ba);gydF4y2Ba
1501gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1502gydF4y2Ba _RDKgydF4y2Ba- > _send_Array (j - 1);gydF4y2Ba
1503gydF4y2Ba _RDKgydF4y2Ba- > _send_Array (j2);gydF4y2Ba
1504gydF4y2Ba _RDKgydF4y2Ba- > _send_Int ((gydF4y2BaintgydF4y2Ba)(minstep_deg * 1000.0));gydF4y2Ba
1505gydF4y2Ba _RDKgydF4y2Ba-> _timeout = 3600 * 1000;gydF4y2Ba
1506gydF4y2Ba intgydF4y2Ba碰撞=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1507gydF4y2Ba _RDKgydF4y2Ba-> _timeout = robodk_api_timeout;gydF4y2Ba
1508gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1509gydF4y2Ba 返回gydF4y2Ba碰撞;gydF4y2Ba
1510gydF4y2Ba}gydF4y2Ba
1511gydF4y2Ba
1519gydF4y2Ba intgydF4y2Ba 项目::MoveL_TestgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Baj - 1,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba&pose2,gydF4y2Ba双gydF4y2Baminstep_deg) {gydF4y2Ba
1520gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1521gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“CollisionMoveL”gydF4y2Ba);gydF4y2Ba
1522gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1523gydF4y2Ba _RDKgydF4y2Ba- > _send_Array (j - 1);gydF4y2Ba
1524gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose (pose2);gydF4y2Ba
1525gydF4y2Ba _RDKgydF4y2Ba- > _send_Int ((gydF4y2BaintgydF4y2Ba)(minstep_deg * 1000.0));gydF4y2Ba
1526gydF4y2Ba _RDKgydF4y2Ba-> _timeout = 3600 * 1000;gydF4y2Ba
1527gydF4y2Ba intgydF4y2Ba碰撞=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1528gydF4y2Ba _RDKgydF4y2Ba-> _timeout = robodk_api_timeout;gydF4y2Ba
1529gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1530gydF4y2Ba 返回gydF4y2Ba碰撞;gydF4y2Ba
1531gydF4y2Ba}gydF4y2Ba
1532gydF4y2Ba
1533gydF4y2Ba
1541gydF4y2Ba 无效gydF4y2Ba 项目::setSpeedgydF4y2Ba(gydF4y2Ba双gydF4y2Baspeed_linear,gydF4y2Ba双gydF4y2Baaccel_linear,gydF4y2Ba双gydF4y2Baspeed_joints,gydF4y2Ba双gydF4y2Baaccel_joints) {gydF4y2Ba
1542gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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_关节;gydF4y2Ba
1549gydF4y2BaSpeed_accel [3] = accel_关节;gydF4y2Ba
1550gydF4y2Ba _RDKgydF4y2Ba- > _send_Array (speed_accel 4);gydF4y2Ba
1551gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1552gydF4y2Ba}gydF4y2Ba
1553gydF4y2Ba
1558gydF4y2Ba 无效gydF4y2Ba 项目::setRoundinggydF4y2Ba(gydF4y2Ba双gydF4y2Bazonedata) {gydF4y2Ba
1559gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1560gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_ZoneData”gydF4y2Ba);gydF4y2Ba
1561gydF4y2Ba _RDKgydF4y2Ba- > _send_Int ((gydF4y2BaintgydF4y2Ba)(zondata * 1000.0));gydF4y2Ba
1562gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1563gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1564gydF4y2Ba}gydF4y2Ba
1565gydF4y2Ba
1570gydF4y2Ba 无效gydF4y2Ba 项目::ShowSequencegydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba*序列){gydF4y2Ba
1571gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1572gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Show_Seq”gydF4y2Ba);gydF4y2Ba
1573gydF4y2Ba _RDKgydF4y2Ba- > _send_Matrix2D(序列);gydF4y2Ba
1574gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1575gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1576gydF4y2Ba}gydF4y2Ba
1577gydF4y2Ba
1578gydF4y2Ba
1583gydF4y2Ba 保龄球gydF4y2Ba 项目::忙gydF4y2Ba(){gydF4y2Ba
1584gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1585gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“IsBusy”gydF4y2Ba);gydF4y2Ba
1586gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1587gydF4y2Ba intgydF4y2Ba忙=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1588gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1589gydF4y2Ba 返回gydF4y2Ba(busy > 0);gydF4y2Ba
1590gydF4y2Ba}gydF4y2Ba
1591gydF4y2Ba
1596gydF4y2Ba 无效gydF4y2Ba 项目::停止gydF4y2Ba(){gydF4y2Ba
1597gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1598gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“停止”gydF4y2Ba);gydF4y2Ba
1599gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1600gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1601gydF4y2Ba}gydF4y2Ba
1602gydF4y2Ba
1607gydF4y2Ba 无效gydF4y2Ba 项目::WaitMovegydF4y2Ba(gydF4y2Ba双gydF4y2Batimeout_sec)gydF4y2Ba常量gydF4y2Ba{gydF4y2Ba
1608gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1609gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“WaitMove”gydF4y2Ba);gydF4y2Ba
1610gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1611gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1612gydF4y2Ba _RDKgydF4y2Ba->_TIMEOUT = (int)(timeout_sec * 1000.0);gydF4y2Ba
1613gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba//将在这里等待;gydF4y2Ba
1614gydF4y2Ba _RDKgydF4y2Ba-> _timeout = robodk_api_timeout;gydF4y2Ba
1615gydF4y2Ba //int isbusy = _RDK->Busy(this);gydF4y2Ba
1616gydF4y2Ba / /当(isbusy)gydF4y2Ba
1617gydF4y2Ba / / {gydF4y2Ba
1618gydF4y2Ba // busy = _RDK-> busy (item);gydF4y2Ba
1619gydF4y2Ba / /}gydF4y2Ba
1620gydF4y2Ba}gydF4y2Ba
1621gydF4y2Ba
1622gydF4y2Ba
1627gydF4y2Ba 无效gydF4y2Ba 项目::setAccuracyActivegydF4y2Ba(gydF4y2BaintgydF4y2Ba精确的){gydF4y2Ba
1628gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1629gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“S_AbsAccOn”gydF4y2Ba);gydF4y2Ba
1630gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1631gydF4y2Ba _RDKgydF4y2Ba- > _send_Int(准确);gydF4y2Ba
1632gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1633gydF4y2Ba}gydF4y2Ba
1634gydF4y2Ba
1636gydF4y2Ba
1637gydF4y2Ba
1638gydF4y2Ba // ----程序项调用-----gydF4y2Ba
1639gydF4y2Ba
1645gydF4y2Ba 保龄球gydF4y2Ba 项目::MakeProgramgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString文件名){gydF4y2Ba
1646gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1647gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“MakeProg”gydF4y2Ba);gydF4y2Ba
1648gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1649gydF4y2Ba _RDKgydF4y2Ba- > _send_Line(文件名);gydF4y2Ba
1650gydF4y2Ba intgydF4y2Baprog_status =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1651gydF4y2BaQString prog_log_str =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
1652gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1653gydF4y2Ba 保龄球gydF4y2Ba成功=gydF4y2Ba假gydF4y2Ba;gydF4y2Ba
1654gydF4y2Ba 如果gydF4y2Ba(prog_status > 1) {gydF4y2Ba
1655gydF4y2Ba成功=gydF4y2Ba真正的gydF4y2Ba;gydF4y2Ba
1656gydF4y2Ba}gydF4y2Ba
1657gydF4y2Ba 返回gydF4y2Ba成功;gydF4y2Ba/ / prog_log_strgydF4y2Ba
1658gydF4y2Ba}gydF4y2Ba
1659gydF4y2Ba
1665gydF4y2Ba 无效gydF4y2Ba 项目::setRunTypegydF4y2Ba(gydF4y2BaintgydF4y2Baprogram_run_type) {gydF4y2Ba
1666gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
1670gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1671gydF4y2Ba}gydF4y2Ba
1672gydF4y2Ba
1682gydF4y2Ba intgydF4y2Ba 项目::调用gydF4y2Ba(){gydF4y2Ba
1683gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1684gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“RunProg”gydF4y2Ba);gydF4y2Ba
1685gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1686gydF4y2Ba intgydF4y2Baprog_status =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1687gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1688gydF4y2Ba 返回gydF4y2Baprog_status;gydF4y2Ba
1689gydF4y2Ba}gydF4y2Ba
1690gydF4y2Ba
1691gydF4y2Ba
1701gydF4y2Ba intgydF4y2Ba 项目::RunCodegydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString参数){gydF4y2Ba
1702gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
1709gydF4y2Ba _RDKgydF4y2Ba- > _send_Line(参数);gydF4y2Ba
1710gydF4y2Ba}gydF4y2Ba
1711gydF4y2Ba intgydF4y2Baprogstatus =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1712gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1713gydF4y2Ba 返回gydF4y2Baprogstatus;gydF4y2Ba
1714gydF4y2Ba}gydF4y2Ba
1715gydF4y2Ba
1721gydF4y2Ba intgydF4y2Ba 项目::RunInstructiongydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString代码,gydF4y2BaintgydF4y2Barun_type) {gydF4y2Ba
1722gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
1726gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (run_type);gydF4y2Ba
1727gydF4y2Ba intgydF4y2Baprogstatus =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1728gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1729gydF4y2Ba 返回gydF4y2Baprogstatus;gydF4y2Ba
1730gydF4y2Ba}gydF4y2Ba
1731gydF4y2Ba
1736gydF4y2Ba 无效gydF4y2Ba 项目::暂停gydF4y2Ba(gydF4y2Ba双gydF4y2Batime_ms) {gydF4y2Ba
1737gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1738gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“RunPause”gydF4y2Ba);gydF4y2Ba
1739gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1740gydF4y2Ba _RDKgydF4y2Ba- > _send_Int ((gydF4y2BaintgydF4y2Ba)(time_ms * 1000.0));gydF4y2Ba
1741gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1742gydF4y2Ba}gydF4y2Ba
1743gydF4y2Ba
1744gydF4y2Ba
1750gydF4y2Ba 无效gydF4y2Ba 项目::setDOgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &io_var,gydF4y2Ba常量gydF4y2BaQString &io_value) {gydF4y2Ba
1751gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1752gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“setDO”gydF4y2Ba);gydF4y2Ba
1753gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1754gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (io_var);gydF4y2Ba
1755gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (io_value);gydF4y2Ba
1756gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1757gydF4y2Ba}gydF4y2Ba
1763gydF4y2Ba 无效gydF4y2Ba 项目::setAOgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &io_var,gydF4y2Ba常量gydF4y2BaQString &io_value) {gydF4y2Ba
1764gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1765gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“setAO”gydF4y2Ba);gydF4y2Ba
1766gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1767gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (io_var);gydF4y2Ba
1768gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (io_value);gydF4y2Ba
1769gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1770gydF4y2Ba}gydF4y2Ba
1771gydF4y2Ba
1776gydF4y2BaQStringgydF4y2Ba项目::getDIgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &io_var) {gydF4y2Ba
1777gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1778gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“getDI”gydF4y2Ba);gydF4y2Ba
1779gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1780gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (io_var);gydF4y2Ba
1781gydF4y2BaQString io_value (gydF4y2Ba_RDKgydF4y2Ba- > _recv_Line ());gydF4y2Ba
1782gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1783gydF4y2Ba 返回gydF4y2Baio_value;gydF4y2Ba
1784gydF4y2Ba}gydF4y2Ba
1785gydF4y2Ba
1790gydF4y2BaQStringgydF4y2Ba项目::getAIgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &io_var) {gydF4y2Ba
1791gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1792gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“getAI”gydF4y2Ba);gydF4y2Ba
1793gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1794gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (io_var);gydF4y2Ba
1795gydF4y2BaQString di_value (gydF4y2Ba_RDKgydF4y2Ba- > _recv_Line ());gydF4y2Ba
1796gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1797gydF4y2Ba 返回gydF4y2Badi_value;gydF4y2Ba
1798gydF4y2Ba}gydF4y2Ba
1799gydF4y2Ba
1806gydF4y2Ba 无效gydF4y2Ba 项目::waitDIgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &io_var,gydF4y2Ba常量gydF4y2BaQString &io_value,gydF4y2Ba双gydF4y2Batimeout_ms) {gydF4y2Ba
1807gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1808gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“waitDI”gydF4y2Ba);gydF4y2Ba
1809gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1810gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (io_var);gydF4y2Ba
1811gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (io_value);gydF4y2Ba
1812gydF4y2Ba _RDKgydF4y2Ba- > _send_Int ((gydF4y2BaintgydF4y2Ba)(timeout_ms * 1000.0));gydF4y2Ba
1813gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1814gydF4y2Ba}gydF4y2Ba
1815gydF4y2Ba
1816gydF4y2Ba
1826gydF4y2Ba 无效gydF4y2Ba 项目::customInstructiongydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString名称,gydF4y2Ba常量gydF4y2BaQString &path_run,gydF4y2Ba常量gydF4y2BaQString &path_icon,gydF4y2Ba保龄球gydF4y2Ba阻塞,gydF4y2Ba常量gydF4y2BaQString &cmd_run_on_robot) {gydF4y2Ba
1827gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1828gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“InsCustom2”gydF4y2Ba);gydF4y2Ba
1829gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1830gydF4y2Ba _RDKgydF4y2Ba- > _send_Line(名称);gydF4y2Ba
1831gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (path_run);gydF4y2Ba
1832gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (path_icon);gydF4y2Ba
1833gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (cmd_run_on_robot);gydF4y2Ba
1834gydF4y2Ba _RDKgydF4y2Ba- > _send_Int(阻塞?1: 0);gydF4y2Ba
1835gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1836gydF4y2Ba}gydF4y2Ba
1837gydF4y2Ba
1838gydF4y2Ba /*gydF4y2Ba
1844gydF4y2Ba addMoveJ(const Item &itemtarget){gydF4y2Ba
1845gydF4y2Ba _RDK - > _check_connection ();gydF4y2Ba
1846gydF4y2Ba _RDK - > _send_Line(“Add_INSMOVE”);gydF4y2Ba
1847gydF4y2Ba _RDK - > _send_Item(技能);gydF4y2Ba
1848gydF4y2Ba _RDK - > _send_Item(这个);gydF4y2Ba
1849gydF4y2Ba _RDK - > _send_Int (1);gydF4y2Ba
1850gydF4y2Ba _RDK - > _check_status ();gydF4y2Ba
1851gydF4y2Ba }gydF4y2Ba
1852gydF4y2Ba
1857gydF4y2Ba addMoveL(const Item &itemtarget){gydF4y2Ba
1858gydF4y2Ba _RDK - > _check_connection ();gydF4y2Ba
1859gydF4y2Ba _RDK - > _send_Line(“Add_INSMOVE”);gydF4y2Ba
1860gydF4y2Ba _RDK - > _send_Item(技能);gydF4y2Ba
1861gydF4y2Ba _RDK - > _send_Item(这个);gydF4y2Ba
1862gydF4y2Ba _RDK - > _send_Int (2);gydF4y2Ba
1863gydF4y2Ba _RDK - > _check_status ();gydF4y2Ba
1864gydF4y2Ba }gydF4y2Ba
1865gydF4y2Ba * /gydF4y2Ba
1866gydF4y2Ba
1871gydF4y2Ba 无效gydF4y2Ba 项目::ShowInstructionsgydF4y2Ba(gydF4y2Ba保龄球gydF4y2Ba可见){gydF4y2Ba
1872gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1873gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Prog_ShowIns”gydF4y2Ba);gydF4y2Ba
1874gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1875gydF4y2Ba _RDKgydF4y2Ba- > _send_Int(可见?1: 0);gydF4y2Ba
1876gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1877gydF4y2Ba}gydF4y2Ba
1878gydF4y2Ba
1883gydF4y2Ba 无效gydF4y2Ba 项目::ShowTargetsgydF4y2Ba(gydF4y2Ba保龄球gydF4y2Ba可见){gydF4y2Ba
1884gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1885gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Prog_ShowTargets”gydF4y2Ba);gydF4y2Ba
1886gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1887gydF4y2Ba _RDKgydF4y2Ba- > _send_Int(可见?1: 0);gydF4y2Ba
1888gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1889gydF4y2Ba}gydF4y2Ba
1890gydF4y2Ba
1891gydF4y2Ba
1898gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1899gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Prog_Nins”gydF4y2Ba);gydF4y2Ba
1900gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1901gydF4y2Ba intgydF4y2Banin =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1902gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1903gydF4y2Ba 返回gydF4y2Banin;gydF4y2Ba
1904gydF4y2Ba}gydF4y2Ba
1905gydF4y2Ba
1916gydF4y2Ba 无效gydF4y2Ba 项目::指令gydF4y2Ba(gydF4y2BaintgydF4y2Bainst_id, QString &name,gydF4y2BaintgydF4y2Ba&instype,gydF4y2BaintgydF4y2Ba&movetype,gydF4y2Ba保龄球gydF4y2Ba&isjointtarget,gydF4y2Ba垫gydF4y2Ba及目标,gydF4y2BatJointsgydF4y2Ba关节){gydF4y2Ba
1917gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1918gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Prog_GIns”gydF4y2Ba);gydF4y2Ba
1919gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1920gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (ins_id);gydF4y2Ba
1921gydF4y2Baname =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
1922gydF4y2Bainstype =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1923gydF4y2BaMovetype = 0;gydF4y2Ba
1924gydF4y2Baisjointtarget =gydF4y2Ba假gydF4y2Ba;gydF4y2Ba
1925gydF4y2Ba //target = null;gydF4y2Ba
1926gydF4y2Ba //关节= null;gydF4y2Ba
1927gydF4y2Ba 如果gydF4y2Ba(instype = =gydF4y2BaRoboDK: INS_TYPE_MOVEgydF4y2Ba) {gydF4y2Ba
1928gydF4y2Bamovetype =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1929gydF4y2Baisjointtarget =gydF4y2Ba_RDKgydF4y2Ba->_recv_Int() > 0 ?正确的:gydF4y2Ba假gydF4y2Ba;gydF4y2Ba
1930gydF4y2Ba目标=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Pose ();gydF4y2Ba
1931gydF4y2Ba _RDKgydF4y2Ba- > _recv_Array(关节);gydF4y2Ba
1932gydF4y2Ba}gydF4y2Ba
1933gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1934gydF4y2Ba}gydF4y2Ba
1935gydF4y2Ba
1946gydF4y2Ba 无效gydF4y2Ba 项目::setInstructiongydF4y2Ba(gydF4y2BaintgydF4y2Bains_id,gydF4y2Ba常量gydF4y2BaQString名称,gydF4y2BaintgydF4y2Bainstype,gydF4y2BaintgydF4y2Bamovetype,gydF4y2Ba保龄球gydF4y2Baisjointtarget,gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba及目标,gydF4y2Ba常量gydF4y2Ba tJointsgydF4y2Ba关节){gydF4y2Ba
1947gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1948gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“Prog_SIns”gydF4y2Ba);gydF4y2Ba
1949gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1950gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (ins_id);gydF4y2Ba
1951gydF4y2Ba _RDKgydF4y2Ba- > _send_Line(名称);gydF4y2Ba
1952gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (instype);gydF4y2Ba
1953gydF4y2Ba 如果gydF4y2Ba(instype = =gydF4y2BaRoboDK: INS_TYPE_MOVEgydF4y2Ba)gydF4y2Ba
1954gydF4y2Ba{gydF4y2Ba
1955gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (movetype);gydF4y2Ba
1956gydF4y2Ba _RDKgydF4y2Ba- > _send_Int (isjointtarget ?1: 0);gydF4y2Ba
1957gydF4y2Ba _RDKgydF4y2Ba- > _send_Pose(目标);gydF4y2Ba
1958gydF4y2Ba _RDKgydF4y2Ba- > _send_Array(关节);gydF4y2Ba
1959gydF4y2Ba}gydF4y2Ba
1960gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1961gydF4y2Ba}gydF4y2Ba
1962gydF4y2Ba
1963gydF4y2Ba
1970gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
1971gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“G_ProgInsList”gydF4y2Ba);gydF4y2Ba
1972gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
1973gydF4y2Ba _RDKgydF4y2Ba- > _recv_Matrix2D(指令);gydF4y2Ba
1974gydF4y2Ba intgydF4y2Ba错误=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
1975gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
1976gydF4y2Ba 返回gydF4y2Ba错误;gydF4y2Ba
1977gydF4y2Ba}gydF4y2Ba
1978gydF4y2Ba
1979gydF4y2Ba
1980gydF4y2Ba
1991gydF4y2Ba 双gydF4y2Ba 项目::更新gydF4y2Ba(gydF4y2BaintgydF4y2Bacollision_check,gydF4y2BaintgydF4y2Batimeout_sec,gydF4y2Ba双gydF4y2Ba* out_nins_time_dist,gydF4y2Ba双gydF4y2Bamm_step,gydF4y2Ba双gydF4y2Badeg_step) {gydF4y2Ba
1992gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
1999gydF4y2Ba _RDKgydF4y2Ba- > _send_Array(价值观,3);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
2006gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
2007gydF4y2Ba 双gydF4y2BaRatio_ok = return_values[3];gydF4y2Ba
2008gydF4y2Ba 如果gydF4y2Ba(out_nins_time_dist ! =gydF4y2BanullptrgydF4y2Ba)gydF4y2Ba
2009gydF4y2Ba{gydF4y2Ba
2010gydF4y2BaOut_nins_time_dist [0] = return_values[0];gydF4y2Ba//正确的指令数gydF4y2Ba
2011gydF4y2BaOut_nins_time_dist [1] = return_values[1];gydF4y2Ba//预计完成程序的时间(周期时间)gydF4y2Ba
2012gydF4y2BaOut_nins_time_dist [2] = return_values[2];gydF4y2Ba//估计的旅行距离gydF4y2Ba
2013gydF4y2Ba}gydF4y2Ba
2014gydF4y2Ba 返回gydF4y2Baratio_ok;gydF4y2Ba
2015gydF4y2Ba}gydF4y2Ba
2016gydF4y2Ba
2017gydF4y2Ba
2030gydF4y2Ba intgydF4y2Ba 项目::InstructionListJointsgydF4y2Ba(QString &error_msg,gydF4y2BatMatrix2DgydF4y2Ba* * joint_list,gydF4y2Ba双gydF4y2Bamm_step,gydF4y2Ba双gydF4y2Badeg_step,gydF4y2Ba常量gydF4y2BaQString &save_to_file,gydF4y2Ba保龄球gydF4y2Bacollision_check,gydF4y2BaintgydF4y2Baresult_flag,gydF4y2Ba双gydF4y2Batime_step_s) {gydF4y2Ba
2031gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();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
2036gydF4y2Ba _RDKgydF4y2Ba-> _timeout = 3600 * 1000;gydF4y2Ba
2037gydF4y2Ba //joint_list = save_to_file;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 =gydF4y2BanullptrgydF4y2Ba;gydF4y2Ba
2044gydF4y2Ba}gydF4y2Ba
2045gydF4y2Ba intgydF4y2Baerror_code =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Int ();gydF4y2Ba
2046gydF4y2Ba _RDKgydF4y2Ba-> _timeout = robodk_api_timeout;gydF4y2Ba
2047gydF4y2Baerror_msg =gydF4y2Ba_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
2048gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
2049gydF4y2Ba 返回gydF4y2Baerror_code;gydF4y2Ba
2050gydF4y2Ba}gydF4y2Ba
2051gydF4y2Ba
2060gydF4y2BaQStringgydF4y2Ba项目::setParamgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString参数,gydF4y2Ba常量gydF4y2BaQString平均数){gydF4y2Ba
2061gydF4y2Ba _RDKgydF4y2Ba- > _check_connection ();gydF4y2Ba
2062gydF4y2Ba _RDKgydF4y2Ba- > _send_Line (gydF4y2Ba“ICMD”gydF4y2Ba);gydF4y2Ba
2063gydF4y2Ba _RDKgydF4y2Ba- > _send_Item (gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
2064gydF4y2Ba _RDKgydF4y2Ba- > _send_Line(参数);gydF4y2Ba
2065gydF4y2Ba _RDKgydF4y2Ba- > _send_Line(价值);gydF4y2Ba
2066gydF4y2BaQString结果=gydF4y2Ba_RDKgydF4y2Ba- > _recv_Line ();gydF4y2Ba
2067gydF4y2Ba _RDKgydF4y2Ba- > _check_status ();gydF4y2Ba
2068gydF4y2Ba 返回gydF4y2Ba结果;gydF4y2Ba
2069gydF4y2Ba}gydF4y2Ba
2070gydF4y2Ba
2075gydF4y2Ba 保龄球gydF4y2Ba 项目:完成gydF4y2Ba(){gydF4y2Ba
2076gydF4y2Ba _RDKgydF4y2Ba->gydF4y2Ba完成gydF4y2Ba();gydF4y2Ba
2077gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
2078gydF4y2Ba}gydF4y2Ba
2079gydF4y2Ba
2080gydF4y2Baquint64gydF4y2Ba项目::GetIDgydF4y2Ba(){gydF4y2Ba
2081gydF4y2Ba 返回gydF4y2Ba _PTRgydF4y2Ba;gydF4y2Ba
2082gydF4y2Ba}gydF4y2Ba
2083gydF4y2Ba
2084gydF4y2Ba //---------------------------------------- 添加更多的gydF4y2Ba
2085gydF4y2Ba
2086gydF4y2Ba
2087gydF4y2Ba
2088gydF4y2Ba
2089gydF4y2Ba
2090gydF4y2Ba
2091gydF4y2Ba
2092gydF4y2Ba
2093gydF4y2Ba
2094gydF4y2Ba
2095gydF4y2Ba
2096gydF4y2Ba
2097gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
2098gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
2099gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
2100gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
2102gydF4y2Ba RoboDK:: RoboDK (gydF4y2Ba常量gydF4y2BaQString &robodk_ip,gydF4y2BaintgydF4y2Bacom_port,gydF4y2Ba常量gydF4y2BaQString args,gydF4y2Ba常量gydF4y2BaQString &path) {gydF4y2Ba
2103gydF4y2Ba_COM =gydF4y2BanullptrgydF4y2Ba;gydF4y2Ba
2104gydF4y2Ba_IP = robodk_ip;gydF4y2Ba
2105gydF4y2Ba_timeout = robodk_api_timeout;gydF4y2Ba
2106gydF4y2Ba_process = 0;gydF4y2Ba
2107gydF4y2Ba_PORT = com_port;gydF4y2Ba
2108gydF4y2Ba_ROBODK_BIN = path;gydF4y2Ba
2109gydF4y2Ba 如果gydF4y2Ba(_port < 0){gydF4y2Ba
2110gydF4y2Ba_port = robodk_default_port;gydF4y2Ba
2111gydF4y2Ba}gydF4y2Ba
2112gydF4y2Ba 如果gydF4y2Ba(_ROBODK_BIN.isEmpty ()) {gydF4y2Ba
2113gydF4y2Ba_robodk_bin = robodk_default_path_bin;gydF4y2Ba
2114gydF4y2Ba}gydF4y2Ba
2115gydF4y2Ba_ARGUMENTS = args;gydF4y2Ba
2116gydF4y2Ba 如果gydF4y2Ba(com_port > 0){gydF4y2Ba
2117gydF4y2Ba_ARGUMENTS.append (gydF4y2Ba" /端口= "gydF4y2Ba+ QString:号码(com_port));gydF4y2Ba
2118gydF4y2Ba}gydF4y2Ba
2119gydF4y2Ba_connect_smart ();gydF4y2Ba
2120gydF4y2Ba}gydF4y2Ba
2121gydF4y2Ba
2122gydF4y2BaRoboDK:: ~ RoboDK () {gydF4y2Ba
2123gydF4y2Ba_disconnect ();gydF4y2Ba
2124gydF4y2Ba}gydF4y2Ba
2125gydF4y2Ba
2126gydF4y2Baquint64 RoboDK: ProcessID () {gydF4y2Ba
2127gydF4y2Ba 如果gydF4y2Ba(_process == 0) {gydF4y2Ba
2128gydF4y2BaQString响应=gydF4y2Ba命令gydF4y2Ba(gydF4y2Ba“MainProcess_ID”gydF4y2Ba);gydF4y2Ba
2129gydF4y2Ba_PROCESS = response.toInt();gydF4y2Ba
2130gydF4y2Ba}gydF4y2Ba
2131gydF4y2Ba 返回gydF4y2Ba_PROCESS;gydF4y2Ba
2132gydF4y2Ba}gydF4y2Ba
2133gydF4y2Ba
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
2139gydF4y2Ba}gydF4y2Ba
2140gydF4y2Ba 返回gydF4y2Bawindow_id;gydF4y2Ba
2141gydF4y2Ba}gydF4y2Ba
2142gydF4y2Ba
2143gydF4y2Ba 保龄球gydF4y2BaRoboDK:连接(){gydF4y2Ba
2144gydF4y2Ba 返回gydF4y2Ba_connected ();gydF4y2Ba
2145gydF4y2Ba}gydF4y2Ba
2146gydF4y2Ba
2147gydF4y2Ba 保龄球gydF4y2BaRoboDK: Connect () {gydF4y2Ba
2148gydF4y2Ba 返回gydF4y2Ba_connect ();gydF4y2Ba
2149gydF4y2Ba}gydF4y2Ba
2154gydF4y2Ba 无效gydF4y2Ba RoboDK:断开gydF4y2Ba(){gydF4y2Ba
2155gydF4y2Ba_disconnect ();gydF4y2Ba
2156gydF4y2Ba}gydF4y2Ba
2161gydF4y2Ba 无效gydF4y2Ba RoboDK:完成gydF4y2Ba(){gydF4y2Ba
2162gydF4y2Ba 断开连接gydF4y2Ba();gydF4y2Ba
2163gydF4y2Ba}gydF4y2Ba
2164gydF4y2Ba
2165gydF4y2Ba // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%gydF4y2Ba
2166gydF4y2Ba //公共方法gydF4y2Ba
2173gydF4y2Ba 项gydF4y2Ba RoboDK: getItemgydF4y2Ba(QString名称、gydF4y2BaintgydF4y2Baitemtype) {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
2182gydF4y2Ba}gydF4y2Ba
2183gydF4y2Ba 项gydF4y2Baitem = _recv_Item();gydF4y2Ba
2184gydF4y2Ba_check_status ();gydF4y2Ba
2185gydF4y2Ba 返回gydF4y2Ba项;gydF4y2Ba
2186gydF4y2Ba}gydF4y2Ba
2187gydF4y2Ba
2194gydF4y2BaQStringListgydF4y2BaRoboDK: getItemListNamesgydF4y2Ba(gydF4y2BaintgydF4y2Ba过滤器){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
2201gydF4y2Ba}gydF4y2Ba
2202gydF4y2Baqint32 numitems = _recv_Int();gydF4y2Ba
2203gydF4y2BaQStringList listnames;gydF4y2Ba
2204gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2BaI = 0;I < numitems;我+ +){gydF4y2Ba
2205gydF4y2Balistnames.append (_recv_Line ());gydF4y2Ba
2206gydF4y2Ba}gydF4y2Ba
2207gydF4y2Ba_check_status ();gydF4y2Ba
2208gydF4y2Ba 返回gydF4y2Balistnames;gydF4y2Ba
2209gydF4y2Ba}gydF4y2Ba
2210gydF4y2Ba
2217gydF4y2BaQList <项目>gydF4y2BaRoboDK: getItemListgydF4y2Ba(gydF4y2BaintgydF4y2Ba过滤器){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
2224gydF4y2Ba}gydF4y2Ba
2225gydF4y2Ba intgydF4y2Banumitems = _recv_Int();gydF4y2Ba
2226gydF4y2BaQList < Item > listitem;gydF4y2Ba
2227gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2BaI = 0;I < numitems;我+ +){gydF4y2Ba
2228gydF4y2Balistitems.append (_recv_Item ());gydF4y2Ba
2229gydF4y2Ba}gydF4y2Ba
2230gydF4y2Ba_check_status ();gydF4y2Ba
2231gydF4y2Ba 返回gydF4y2Balistitem;gydF4y2Ba
2232gydF4y2Ba}gydF4y2Ba
2233gydF4y2Ba
2235gydF4y2Ba
2243gydF4y2Ba 项gydF4y2Ba RoboDK: ItemUserPickgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString消息,gydF4y2BaintgydF4y2Baitemtype) {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 项gydF4y2Baitem = _recv_Item();gydF4y2Ba/ /项目);gydF4y2Ba
2250gydF4y2Ba_timeout = robodk_api_timeout;gydF4y2Ba
2251gydF4y2Ba_check_status ();gydF4y2Ba
2252gydF4y2Ba 返回gydF4y2Ba项;gydF4y2Ba
2253gydF4y2Ba}gydF4y2Ba
2254gydF4y2Ba
2258gydF4y2Ba 无效gydF4y2Ba RoboDK: ShowRoboDKgydF4y2Ba() {gydF4y2Ba
2259gydF4y2Ba_check_connection ();gydF4y2Ba
2260gydF4y2Ba_send_Line (gydF4y2Ba“提高”gydF4y2Ba);gydF4y2Ba
2261gydF4y2Ba_check_status ();gydF4y2Ba
2262gydF4y2Ba}gydF4y2Ba
2263gydF4y2Ba
2267gydF4y2Ba 无效gydF4y2Ba RoboDK: HideRoboDKgydF4y2Ba() {gydF4y2Ba
2268gydF4y2Ba_check_connection ();gydF4y2Ba
2269gydF4y2Ba_send_Line (gydF4y2Ba“隐藏”gydF4y2Ba);gydF4y2Ba
2270gydF4y2Ba_check_status ();gydF4y2Ba
2271gydF4y2Ba}gydF4y2Ba
2272gydF4y2Ba
2276gydF4y2Ba 无效gydF4y2Ba RoboDK: CloseRoboDKgydF4y2Ba() {gydF4y2Ba
2277gydF4y2Ba_check_connection ();gydF4y2Ba
2278gydF4y2Ba_send_Line (gydF4y2Ba“退出”gydF4y2Ba);gydF4y2Ba
2279gydF4y2Ba_check_status ();gydF4y2Ba
2280gydF4y2Ba_disconnect ();gydF4y2Ba
2281gydF4y2Ba_process = 0;gydF4y2Ba
2282gydF4y2Ba}gydF4y2Ba
2283gydF4y2Ba
2284gydF4y2BaQStringgydF4y2BaRoboDK:版本gydF4y2Ba()gydF4y2Ba
2285gydF4y2Ba{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
2294gydF4y2Ba
2295gydF4y2Ba}gydF4y2Ba
2296gydF4y2Ba
2297gydF4y2Ba
2302gydF4y2Ba 无效gydF4y2Ba RoboDK: setWindowStategydF4y2Ba(gydF4y2BaintgydF4y2Bawindowstate) {gydF4y2Ba
2303gydF4y2Ba_check_connection ();gydF4y2Ba
2304gydF4y2Ba_send_Line (gydF4y2Ba“S_WindowState”gydF4y2Ba);gydF4y2Ba
2305gydF4y2Ba_send_Int (windowstate);gydF4y2Ba
2306gydF4y2Ba_check_status ();gydF4y2Ba
2307gydF4y2Ba}gydF4y2Ba
2308gydF4y2Ba
2309gydF4y2Ba
2314gydF4y2Ba 无效gydF4y2Ba RoboDK: setFlagsRoboDKgydF4y2Ba(gydF4y2BaintgydF4y2Ba旗帜){gydF4y2Ba
2315gydF4y2Ba_check_connection ();gydF4y2Ba
2316gydF4y2Ba_send_Line (gydF4y2Ba“S_RoboDK_Rights”gydF4y2Ba);gydF4y2Ba
2317gydF4y2Ba_send_Int(旗帜);gydF4y2Ba
2318gydF4y2Ba_check_status ();gydF4y2Ba
2319gydF4y2Ba}gydF4y2Ba
2320gydF4y2Ba
2326gydF4y2Ba 无效gydF4y2Ba RoboDK: setFlagsItemgydF4y2Ba(gydF4y2Ba项gydF4y2Ba项,gydF4y2BaintgydF4y2Ba旗帜){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
2332gydF4y2Ba}gydF4y2Ba
2333gydF4y2Ba
2339gydF4y2Ba intgydF4y2Ba RoboDK: getFlagsItemgydF4y2Ba(gydF4y2Ba项gydF4y2Ba项){gydF4y2Ba
2340gydF4y2Ba_check_connection ();gydF4y2Ba
2341gydF4y2Ba_send_Line (gydF4y2Ba“S_Item_Rights”gydF4y2Ba);gydF4y2Ba
2342gydF4y2Ba_send_Item(项);gydF4y2Ba
2343gydF4y2Ba intgydF4y2Baflags = _recv_Int();gydF4y2Ba
2344gydF4y2Ba_check_status ();gydF4y2Ba
2345gydF4y2Ba 返回gydF4y2Ba国旗;gydF4y2Ba
2346gydF4y2Ba}gydF4y2Ba
2347gydF4y2Ba
2353gydF4y2Ba 无效gydF4y2Ba RoboDK: ShowMessagegydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString消息,gydF4y2Ba保龄球gydF4y2Ba弹出){gydF4y2Ba
2354gydF4y2Ba_check_connection ();gydF4y2Ba
2355gydF4y2Ba 如果gydF4y2Ba(弹出)gydF4y2Ba
2356gydF4y2Ba{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
2362gydF4y2Ba}gydF4y2Ba
2363gydF4y2Ba 其他的gydF4y2Ba
2364gydF4y2Ba{gydF4y2Ba
2365gydF4y2Ba_send_Line (gydF4y2Ba“ShowMessageStatus”gydF4y2Ba);gydF4y2Ba
2366gydF4y2Ba_send_Line(消息);gydF4y2Ba
2367gydF4y2Ba_check_status ();gydF4y2Ba
2368gydF4y2Ba}gydF4y2Ba
2369gydF4y2Ba
2370gydF4y2Ba}gydF4y2Ba
2371gydF4y2Ba
2376gydF4y2Ba 无效gydF4y2Ba RoboDK:副本gydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba&tocopy) {gydF4y2Ba
2377gydF4y2Ba_check_connection ();gydF4y2Ba
2378gydF4y2Ba_send_Line (gydF4y2Ba“复制”gydF4y2Ba);gydF4y2Ba
2379gydF4y2Ba_send_Item (tocopy);gydF4y2Ba
2380gydF4y2Ba_check_status ();gydF4y2Ba
2381gydF4y2Ba}gydF4y2Ba
2382gydF4y2Ba
2388gydF4y2Ba 项gydF4y2Ba RoboDK:粘贴gydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba* paste_to) {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
2395gydF4y2Ba}gydF4y2Ba
2396gydF4y2Ba
2403gydF4y2Ba 项gydF4y2Ba RoboDK: AddFilegydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString文件名,gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba*家长){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
2411gydF4y2Ba}gydF4y2Ba
2412gydF4y2Ba
2418gydF4y2Ba 无效gydF4y2Ba RoboDK:保存gydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString文件名,gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba* itemsave) {gydF4y2Ba
2419gydF4y2Ba_check_connection ();gydF4y2Ba
2420gydF4y2Ba_send_Line (gydF4y2Ba“保存”gydF4y2Ba);gydF4y2Ba
2421gydF4y2Ba_send_Line(文件名);gydF4y2Ba
2422gydF4y2Ba_send_Item (itemsave);gydF4y2Ba
2423gydF4y2Ba_check_status ();gydF4y2Ba
2424gydF4y2Ba}gydF4y2Ba
2425gydF4y2Ba
2438gydF4y2Ba 项gydF4y2Ba RoboDK: AddShapegydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba* trianglePoints,gydF4y2Ba项gydF4y2Ba*遭受,gydF4y2Ba保龄球gydF4y2BashapeOverride,gydF4y2Ba颜色gydF4y2Ba*颜色)gydF4y2Ba
2439gydF4y2Ba{gydF4y2Ba
2440gydF4y2Ba 双gydF4y2BacolorArray[4] = {0.6,0.6,0.8,1.0};gydF4y2Ba
2441gydF4y2Ba 如果gydF4y2Ba(颜色! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
2442gydF4y2BacolorArray[0] = color->gydF4y2BargydF4y2Ba;gydF4y2Ba
2443gydF4y2BacolorArray[1] = color->gydF4y2BaggydF4y2Ba;gydF4y2Ba
2444gydF4y2BacolorArray[2] = color->gydF4y2BabgydF4y2Ba;gydF4y2Ba
2445gydF4y2BacolorArray[3] = color->gydF4y2Ba一个gydF4y2Ba;gydF4y2Ba
2446gydF4y2Ba}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
2456gydF4y2Ba}gydF4y2Ba
2457gydF4y2Ba
2474gydF4y2Ba 项gydF4y2Ba RoboDK: AddCurvegydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba* curvePoints,gydF4y2Ba项gydF4y2Ba* referenceObject,gydF4y2Ba保龄球gydF4y2BaaddToRef,gydF4y2BaintgydF4y2BaProjectionType)gydF4y2Ba
2475gydF4y2Ba{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
2485gydF4y2Ba}gydF4y2Ba
2486gydF4y2Ba
2495gydF4y2Ba 项gydF4y2Ba RoboDK: AddPointsgydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba*点,gydF4y2Ba项gydF4y2Ba* referenceObject,gydF4y2Ba保龄球gydF4y2BaaddToRef,gydF4y2BaintgydF4y2BaProjectionType)gydF4y2Ba
2496gydF4y2Ba{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
2505gydF4y2Ba}gydF4y2Ba
2506gydF4y2Ba
2507gydF4y2Ba 无效gydF4y2Ba RoboDK: ProjectPointsgydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba*点,gydF4y2BatMatrix2DgydF4y2Ba* *预计,gydF4y2Ba项gydF4y2BaobjectProject,gydF4y2BaintgydF4y2BaProjectionType)gydF4y2Ba
2508gydF4y2Ba{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
2516gydF4y2Ba}gydF4y2Ba
2517gydF4y2Ba
2523gydF4y2Ba 项gydF4y2Ba RoboDK: AddStationgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString名称)gydF4y2Ba
2524gydF4y2Ba{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
2531gydF4y2Ba}gydF4y2Ba
2532gydF4y2Ba
2533gydF4y2Ba
2534gydF4y2Ba
2535gydF4y2Ba
2539gydF4y2Ba 无效gydF4y2Ba RoboDK: CloseStationgydF4y2Ba(){gydF4y2Ba
2540gydF4y2Ba_check_connection ();gydF4y2Ba
2541gydF4y2Ba_send_Line (gydF4y2Ba“RemoveStn”gydF4y2Ba);gydF4y2Ba
2542gydF4y2Ba_check_status ();gydF4y2Ba
2543gydF4y2Ba}gydF4y2Ba
2544gydF4y2Ba
2552gydF4y2Ba 项gydF4y2Ba RoboDK: AddTargetgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString名称,gydF4y2Ba项gydF4y2Ba* itemparent,gydF4y2Ba项gydF4y2Ba* itemrobot) {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
2561gydF4y2Ba}gydF4y2Ba
2562gydF4y2Ba
2569gydF4y2Ba 项gydF4y2Ba RoboDK: AddFramegydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString名称,gydF4y2Ba项gydF4y2Ba* itemparent) {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
2577gydF4y2Ba}gydF4y2Ba
2578gydF4y2Ba
2585gydF4y2Ba 项gydF4y2Ba RoboDK: AddProgramgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString名称,gydF4y2Ba项gydF4y2Ba* itemrobot) {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
2593gydF4y2Ba}gydF4y2Ba
2594gydF4y2Ba
2603gydF4y2Ba 项gydF4y2Ba RoboDK: AddMachiningProjectgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString名称,gydF4y2Ba项gydF4y2Ba* itemrobot)gydF4y2Ba
2604gydF4y2Ba{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
2612gydF4y2Ba}gydF4y2Ba
2613gydF4y2Ba
2614gydF4y2Ba
2615gydF4y2Ba
2616gydF4y2BaQList <项目>gydF4y2BaRoboDK: getOpenStationgydF4y2Ba()gydF4y2Ba
2617gydF4y2Ba{gydF4y2Ba
2618gydF4y2Ba_check_connection ();gydF4y2Ba
2619gydF4y2Ba_send_Line (gydF4y2Ba“G_AllStn”gydF4y2Ba);gydF4y2Ba
2620gydF4y2Ba intgydF4y2Banstn = _recv_Int();gydF4y2Ba
2621gydF4y2BaQList *listStn =gydF4y2Ba新gydF4y2BaQList < Item > ();gydF4y2Ba
2622gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2BaI = 0; I < nstn;i++){gydF4y2Ba
2623gydF4y2Ba 项gydF4y2Bastation = _recv_Item();gydF4y2Ba
2624gydF4y2BalistStn - >附加(站);gydF4y2Ba
2625gydF4y2Ba}gydF4y2Ba
2626gydF4y2Ba_check_status ();gydF4y2Ba
2627gydF4y2Ba 返回gydF4y2Ba* listStn;gydF4y2Ba
2628gydF4y2Ba}gydF4y2Ba
2629gydF4y2Ba
2630gydF4y2Ba
2636gydF4y2Ba_check_connection ();gydF4y2Ba
2637gydF4y2Ba_send_Line (gydF4y2Ba“G_ActiveStn”gydF4y2Ba);gydF4y2Ba
2638gydF4y2Ba 项gydF4y2Bastation = _recv_Item();gydF4y2Ba
2639gydF4y2Ba_check_status ();gydF4y2Ba
2640gydF4y2Ba 返回gydF4y2Ba站;gydF4y2Ba
2641gydF4y2Ba}gydF4y2Ba
2642gydF4y2Ba
2647gydF4y2Ba 无效gydF4y2Ba RoboDK: setActiveStationgydF4y2Ba(gydF4y2Ba项gydF4y2Ba站){gydF4y2Ba
2648gydF4y2Ba_check_connection ();gydF4y2Ba
2649gydF4y2Ba_send_Line (gydF4y2Ba“S_ActiveStn”gydF4y2Ba);gydF4y2Ba
2650gydF4y2Ba_send_Item(站);gydF4y2Ba
2651gydF4y2Ba_check_status ();gydF4y2Ba
2652gydF4y2Ba}gydF4y2Ba
2653gydF4y2Ba
2654gydF4y2Ba
2655gydF4y2Ba //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%gydF4y2Ba
2661gydF4y2Ba intgydF4y2Ba RoboDK:调用gydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &function_w_params) {gydF4y2Ba
2662gydF4y2Ba 返回gydF4y2Ba RunCodegydF4y2Ba(function_w_paramsgydF4y2Ba真正的gydF4y2Ba);gydF4y2Ba
2663gydF4y2Ba}gydF4y2Ba
2664gydF4y2Ba
2671gydF4y2Ba intgydF4y2Ba RoboDK: RunCodegydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString代码,gydF4y2Ba保龄球gydF4y2Bacode_is_fcn_call) {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
2679gydF4y2Ba}gydF4y2Ba
2680gydF4y2Ba
2686gydF4y2Ba 无效gydF4y2Ba RoboDK: RunMessagegydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString消息,gydF4y2Ba保龄球gydF4y2Bamessage_is_comment) {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
2692gydF4y2Ba}gydF4y2Ba
2693gydF4y2Ba
2698gydF4y2Ba 无效gydF4y2Ba RoboDK:渲染gydF4y2Ba(gydF4y2Ba保龄球gydF4y2Baalways_render) {gydF4y2Ba
2699gydF4y2Ba 保龄球gydF4y2BaAuto_render = !gydF4y2Ba
2700gydF4y2Ba_check_connection ();gydF4y2Ba
2701gydF4y2Ba_send_Line (gydF4y2Ba“呈现”gydF4y2Ba);gydF4y2Ba
2702gydF4y2Ba_send_Int (auto_render ?1: 0);gydF4y2Ba
2703gydF4y2Ba_check_status ();gydF4y2Ba
2704gydF4y2Ba}gydF4y2Ba
2705gydF4y2Ba
2710gydF4y2Ba 无效gydF4y2Ba RoboDK:更新gydF4y2Ba()gydF4y2Ba
2711gydF4y2Ba{gydF4y2Ba
2712gydF4y2Ba_check_connection ();gydF4y2Ba
2713gydF4y2Ba_send_Line (gydF4y2Ba“刷新”gydF4y2Ba);gydF4y2Ba
2714gydF4y2Ba_send_Int (0);gydF4y2Ba
2715gydF4y2Ba_check_status ();gydF4y2Ba
2716gydF4y2Ba}gydF4y2Ba
2717gydF4y2Ba
2724gydF4y2Ba 保龄球gydF4y2Ba RoboDK: IsInsidegydF4y2Ba(gydF4y2Ba项gydF4y2Baobject_inside,gydF4y2Ba项gydF4y2Baobject_parent) {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 intgydF4y2Bainside = _recv_Int();gydF4y2Ba
2730gydF4y2Ba_check_status ();gydF4y2Ba
2731gydF4y2Ba 返回gydF4y2Ba里面> 0;gydF4y2Ba
2732gydF4y2Ba}gydF4y2Ba
2733gydF4y2Ba
2739gydF4y2Ba intgydF4y2Ba RoboDK: setCollisionActivegydF4y2Ba(gydF4y2BaintgydF4y2Bacheck_state) {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
2746gydF4y2Ba}gydF4y2Ba
2747gydF4y2Ba
2758gydF4y2Ba 保龄球gydF4y2Ba RoboDK: setCollisionActivePairgydF4y2Ba(gydF4y2BaintgydF4y2Bacheck_state,gydF4y2Ba项gydF4y2Baitem1,gydF4y2Ba项gydF4y2Ba第二条,gydF4y2BaintgydF4y2Baid1、gydF4y2BaintgydF4y2Baid2) {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 intgydF4y2Basuccess = _recv_Int();gydF4y2Ba
2767gydF4y2Ba_check_status ();gydF4y2Ba
2768gydF4y2Ba 返回gydF4y2Ba成功> 0;gydF4y2Ba
2769gydF4y2Ba}gydF4y2Ba
2770gydF4y2Ba
2775gydF4y2Ba intgydF4y2Ba RoboDK:碰撞gydF4y2Ba(){gydF4y2Ba
2776gydF4y2Ba_check_connection ();gydF4y2Ba
2777gydF4y2Ba_send_Line (gydF4y2Ba“碰撞”gydF4y2Ba);gydF4y2Ba
2778gydF4y2Ba intgydF4y2Bancollisions = _recv_Int();gydF4y2Ba
2779gydF4y2Ba_check_status ();gydF4y2Ba
2780gydF4y2Ba 返回gydF4y2Bancollisions;gydF4y2Ba
2781gydF4y2Ba}gydF4y2Ba
2782gydF4y2Ba
2789gydF4y2Ba intgydF4y2Ba RoboDK:碰撞gydF4y2Ba(gydF4y2Ba项gydF4y2Baitem1,gydF4y2Ba项gydF4y2Ba第二条){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
2797gydF4y2Ba}gydF4y2Ba
2798gydF4y2Ba
2799gydF4y2BaQList <项目>gydF4y2BaRoboDK: getCollisionItemsgydF4y2Ba(QList < int > link_id_list)gydF4y2Ba
2800gydF4y2Ba{gydF4y2Ba
2801gydF4y2Ba_check_connection ();gydF4y2Ba
2802gydF4y2Ba_send_Line (gydF4y2Ba“碰撞项目”gydF4y2Ba);gydF4y2Ba
2803gydF4y2Ba intgydF4y2Banitems = _recv_Int();gydF4y2Ba
2804gydF4y2BaQList itemList = QList();gydF4y2Ba
2805gydF4y2Ba 如果gydF4y2Ba(! link_id_list.isEmpty ()) {gydF4y2Ba
2806gydF4y2Balink_id_list.clear ();gydF4y2Ba
2807gydF4y2Ba}gydF4y2Ba
2808gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2BaI = 0;I < 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
2813gydF4y2Ba}gydF4y2Ba
2814gydF4y2Ba intgydF4y2BacollisionTimes = _recv_Int();gydF4y2Ba
2815gydF4y2Ba}gydF4y2Ba
2816gydF4y2Ba_check_status ();gydF4y2Ba
2817gydF4y2Ba 返回gydF4y2BaitemList;gydF4y2Ba
2818gydF4y2Ba}gydF4y2Ba
2819gydF4y2Ba
2824gydF4y2Ba 无效gydF4y2Ba RoboDK: setSimulationSpeedgydF4y2Ba(gydF4y2Ba双gydF4y2Ba速度){gydF4y2Ba
2825gydF4y2Ba_check_connection ();gydF4y2Ba
2826gydF4y2Ba_send_Line (gydF4y2Ba“SimulateSpeed”gydF4y2Ba);gydF4y2Ba
2827gydF4y2Ba_send_Int ((gydF4y2BaintgydF4y2Ba)(速度* 1000.0));gydF4y2Ba
2828gydF4y2Ba_check_status ();gydF4y2Ba
2829gydF4y2Ba}gydF4y2Ba
2830gydF4y2Ba
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
2841gydF4y2Ba}gydF4y2Ba
2852gydF4y2Ba 无效gydF4y2Ba RoboDK: setRunModegydF4y2Ba(gydF4y2BaintgydF4y2Barun_mode) {gydF4y2Ba
2853gydF4y2Ba_check_connection ();gydF4y2Ba
2854gydF4y2Ba_send_Line (gydF4y2Ba“S_RunMode”gydF4y2Ba);gydF4y2Ba
2855gydF4y2Ba_send_Int (run_mode);gydF4y2Ba
2856gydF4y2Ba_check_status ();gydF4y2Ba
2857gydF4y2Ba}gydF4y2Ba
2858gydF4y2Ba
2867gydF4y2Ba intgydF4y2Ba RoboDK: RunModegydF4y2Ba(){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
2873gydF4y2Ba}gydF4y2Ba
2880gydF4y2BaQList < QPair < QString, QString > >gydF4y2BaRoboDK: getParamsgydF4y2Ba(){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(gydF4y2BaintgydF4y2BaI = 0;I < nparam;我+ +){gydF4y2Ba
2886gydF4y2BaQString参数= _recv_Line();gydF4y2Ba
2887gydF4y2BaQString值= _recv_Line();gydF4y2Ba
2888gydF4y2Baparamlist。一个ppend(qMakePair(param, value));
2889gydF4y2Ba}gydF4y2Ba
2890gydF4y2Ba_check_status ();gydF4y2Ba
2891gydF4y2Ba 返回gydF4y2Baparamlist;gydF4y2Ba
2892gydF4y2Ba}gydF4y2Ba
2893gydF4y2Ba
2905gydF4y2BaQStringgydF4y2BaRoboDK: getParamgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString param) {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
2912gydF4y2Ba}gydF4y2Ba
2913gydF4y2Ba_check_status ();gydF4y2Ba
2914gydF4y2Ba 返回gydF4y2Ba价值;gydF4y2Ba
2915gydF4y2Ba}gydF4y2Ba
2916gydF4y2Ba
2924gydF4y2Ba 无效gydF4y2Ba RoboDK: setParamgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString参数,gydF4y2Ba常量gydF4y2BaQString平均数){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
2930gydF4y2Ba}gydF4y2Ba
2931gydF4y2Ba
2938gydF4y2BaQStringgydF4y2BaRoboDK:命令gydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString cmd,gydF4y2Ba常量gydF4y2BaQString平均数){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
2946gydF4y2Ba}gydF4y2Ba
2947gydF4y2Ba
2948gydF4y2Ba 保龄球gydF4y2Ba RoboDK: LaserTrackerMeasuregydF4y2Ba(gydF4y2BatXYZgydF4y2Baxyz,gydF4y2BatXYZgydF4y2Ba估计,gydF4y2Ba保龄球gydF4y2Ba搜索)gydF4y2Ba
2949gydF4y2Ba{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
2958gydF4y2Ba}gydF4y2Ba
2959gydF4y2Ba
2960gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
2961gydF4y2Ba}gydF4y2Ba
2962gydF4y2Ba
2963gydF4y2Ba 无效gydF4y2Ba RoboDK: ShowAsCollidedgydF4y2Ba(QList itemList, QList collidedList, QList *robot_link_id)gydF4y2Ba
2964gydF4y2Ba{gydF4y2Ba
2965gydF4y2Ba intgydF4y2Banitems = qMin(itemList.length(),collidedList.length()));gydF4y2Ba
2966gydF4y2Ba 如果gydF4y2Ba(robot_link_id ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
2967gydF4y2Banitems = qMin(nitems, robot_link_id->length());gydF4y2Ba
2968gydF4y2Ba}gydF4y2Ba
2969gydF4y2Ba_check_connection ();gydF4y2Ba
2970gydF4y2Ba_send_Line (gydF4y2Ba“ShowAsCollidedList”gydF4y2Ba);gydF4y2Ba
2971gydF4y2Ba_send_Int (nitems);gydF4y2Ba
2972gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2BaI = 0;I < nitems;我+ +){gydF4y2Ba
2973gydF4y2Ba[我]_send_Item (itemList);gydF4y2Ba
2974gydF4y2Ba_send_Int (collidedList(我)?1: 0);gydF4y2Ba
2975gydF4y2Ba intgydF4y2BaLink_id = 0;gydF4y2Ba
2976gydF4y2Ba 如果gydF4y2Ba(robot_link_id ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
2977gydF4y2BaLink_id = robot_link_id->at(i);gydF4y2Ba
2978gydF4y2Ba}gydF4y2Ba
2979gydF4y2Ba_send_Int (link_id);gydF4y2Ba
2980gydF4y2Ba}gydF4y2Ba
2981gydF4y2Ba_check_status ();gydF4y2Ba
2982gydF4y2Ba}gydF4y2Ba
2983gydF4y2Ba
2984gydF4y2Ba //---------------------------------------------- 添加更多(getParams setparam,调整TCP、校准ref…)gydF4y2Ba
2985gydF4y2Ba
2986gydF4y2Ba
2997gydF4y2Ba 无效gydF4y2Ba RoboDK: CalibrateToolgydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba* poses_joints,gydF4y2BatXYZgydF4y2Batcp_xyz,gydF4y2BaintgydF4y2Ba格式,gydF4y2BaintgydF4y2Ba算法,gydF4y2Ba项gydF4y2Ba*机器人,gydF4y2Ba双gydF4y2Ba* error_stats) {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 ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3007gydF4y2Ba_recv_Array (error_stats);gydF4y2Ba
3008gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
3009gydF4y2Ba 双gydF4y2Baerrors_ignored [20];gydF4y2Ba
3010gydF4y2Ba_recv_Array (errors_ignored);gydF4y2Ba
3011gydF4y2Ba}gydF4y2Ba
3012gydF4y2Ba tMatrix2DgydF4y2Ba* error_graph =gydF4y2BaMatrix2D_CreategydF4y2Ba();gydF4y2Ba
3013gydF4y2Ba_recv_Matrix2D (&error_graph);gydF4y2Ba
3014gydF4y2Ba Matrix2D_DeletegydF4y2Ba(&error_graph);gydF4y2Ba
3015gydF4y2Ba_check_status ();gydF4y2Ba
3016gydF4y2Ba}gydF4y2Ba
3017gydF4y2Ba
3026gydF4y2Ba 垫gydF4y2Ba RoboDK: CalibrateReferencegydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba* poses_joints,gydF4y2BaintgydF4y2Ba方法,gydF4y2Ba保龄球gydF4y2Bause_joints,gydF4y2Ba项gydF4y2Ba*机器人){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
3038gydF4y2Ba}gydF4y2Ba
3039gydF4y2Ba
3040gydF4y2Ba
3041gydF4y2Ba intgydF4y2Ba RoboDK: ProgramStartgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString progname,gydF4y2Ba常量gydF4y2BaQString &defaultfolder,gydF4y2Ba常量gydF4y2BaQString后处理程序,gydF4y2Ba项gydF4y2Ba*机器人){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 intgydF4y2Baerrors = _recv_Int();gydF4y2Ba
3049gydF4y2Ba_check_status ();gydF4y2Ba
3050gydF4y2Ba 返回gydF4y2Ba错误;gydF4y2Ba
3051gydF4y2Ba}gydF4y2Ba
3052gydF4y2Ba
3057gydF4y2Ba 无效gydF4y2Ba RoboDK: setViewPosegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 垫gydF4y2Ba姿势){gydF4y2Ba
3058gydF4y2Ba_check_connection ();gydF4y2Ba
3059gydF4y2Ba_send_Line (gydF4y2Ba“S_ViewPose”gydF4y2Ba);gydF4y2Ba
3060gydF4y2Ba_send_Pose(构成);gydF4y2Ba
3061gydF4y2Ba_check_status ();gydF4y2Ba
3062gydF4y2Ba}gydF4y2Ba
3063gydF4y2Ba
3069gydF4y2Ba_check_connection ();gydF4y2Ba
3070gydF4y2Ba_send_Line (gydF4y2Ba“G_ViewPose”gydF4y2Ba);gydF4y2Ba
3071gydF4y2Ba 垫gydF4y2Bapose = _recv_Pose();gydF4y2Ba
3072gydF4y2Ba_check_status ();gydF4y2Ba
3073gydF4y2Ba 返回gydF4y2Ba构成;gydF4y2Ba
3074gydF4y2Ba}gydF4y2Ba
3075gydF4y2Ba
3076gydF4y2Ba / /不完整的功能!gydF4y2Ba
3077gydF4y2Ba /*bool RoboDK::SetRobotParams(项目*机器人,tMatrix2D dhm, Mat poseBase, Mat poseTool)gydF4y2Ba
3078gydF4y2Ba {gydF4y2Ba
3079gydF4y2Ba _check_connection ();gydF4y2Ba
3080gydF4y2Ba _send_Line(“S_AbsAccParam”);gydF4y2Ba
3081gydF4y2Ba _send_Item(机器人);gydF4y2Ba
3082gydF4y2Ba 垫r2b;gydF4y2Ba
3083gydF4y2Ba r2b.setToIdentity ();gydF4y2Ba
3084gydF4y2Ba _send_Pose (r2b);gydF4y2Ba
3085gydF4y2Ba _send_Pose (poseBase);gydF4y2Ba
3086gydF4y2Ba _send_Pose (poseTool);gydF4y2Ba
3087gydF4y2Ba Int *ndofs = dhm.size;gydF4y2Ba
3088gydF4y2Ba _send_Int (* ndofs);gydF4y2Ba
3089gydF4y2Ba For (int I = 0;I < *ndofs;我+ +){gydF4y2Ba
3090gydF4y2Ba _send_Array (dhm);gydF4y2Ba
3091gydF4y2Ba }gydF4y2Ba
3092gydF4y2Ba
3093gydF4y2Ba _send_Pose (poseBase);gydF4y2Ba
3094gydF4y2Ba _send_Pose (poseTool);gydF4y2Ba
3095gydF4y2Ba _send_Int (* ndofs);gydF4y2Ba
3096gydF4y2Ba For (int I = 0;I < *ndofs;我+ +){gydF4y2Ba
3097gydF4y2Ba _send_Array (dhm[我]);gydF4y2Ba
3098gydF4y2Ba }gydF4y2Ba
3099gydF4y2Ba
3100gydF4y2Ba _send_Array (nullptr);gydF4y2Ba
3101gydF4y2Ba _send_Array (nullptr);gydF4y2Ba
3102gydF4y2Ba _check_status ();gydF4y2Ba
3103gydF4y2Ba 返回true;gydF4y2Ba
3104gydF4y2Ba } * /gydF4y2Ba
3105gydF4y2Ba
3106gydF4y2Ba 项gydF4y2Ba RoboDK: Cam2D_AddgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba&item_object,gydF4y2Ba常量gydF4y2BaQString &cam_params,gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba* cam_item) {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
3115gydF4y2Ba}gydF4y2Ba
3116gydF4y2Ba intgydF4y2Ba RoboDK: Cam2D_SnapshotgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &file_save_img,gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba&cam_item,gydF4y2Ba常量gydF4y2BaQString params) {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 intgydF4y2Bastatus = _recv_Int();gydF4y2Ba
3124gydF4y2Ba_timeout = robodk_api_timeout;gydF4y2Ba
3125gydF4y2Ba_check_status ();gydF4y2Ba
3126gydF4y2Ba 返回gydF4y2Ba状态;gydF4y2Ba
3127gydF4y2Ba}gydF4y2Ba
3128gydF4y2Ba
3129gydF4y2Ba intgydF4y2Ba RoboDK: Cam2D_SetParamsgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString参数,gydF4y2Ba常量gydF4y2Ba 项gydF4y2Ba&cam_item) {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 intgydF4y2Bastatus = _recv_Int();gydF4y2Ba
3135gydF4y2Ba_check_status ();gydF4y2Ba
3136gydF4y2Ba 返回gydF4y2Ba状态;gydF4y2Ba
3137gydF4y2Ba}gydF4y2Ba
3138gydF4y2Ba
3139gydF4y2Ba 项gydF4y2Ba RoboDK: getCursorXYZgydF4y2Ba(gydF4y2BaintgydF4y2Bax,gydF4y2BaintgydF4y2Bay,gydF4y2BatXYZgydF4y2BaxyzStation)gydF4y2Ba
3140gydF4y2Ba{gydF4y2Ba
3141gydF4y2Ba_check_connection ();gydF4y2Ba
3142gydF4y2Ba_send_Line (gydF4y2Ba“Proj2d3d”gydF4y2Ba);gydF4y2Ba
3143gydF4y2Ba_send_Int (x);gydF4y2Ba
3144gydF4y2Ba_send_Int (y);gydF4y2Ba
3145gydF4y2Ba intgydF4y2Baselect = _recv_Int();gydF4y2Ba
3146gydF4y2Ba 项gydF4y2BaselectedItem = _recv_Item();gydF4y2Ba
3147gydF4y2Ba tXYZgydF4y2Baxyz;gydF4y2Ba
3148gydF4y2Ba_recv_XYZ(某某);gydF4y2Ba
3149gydF4y2Ba 如果gydF4y2Ba(xyzStation ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3150gydF4y2BaxyzStation[0] = xyz[0];gydF4y2Ba
3151gydF4y2BaxyzStation[1] = xyz[1];gydF4y2Ba
3152gydF4y2BaxyzStation[2] = xyz[2];gydF4y2Ba
3153gydF4y2Ba}gydF4y2Ba
3154gydF4y2Ba_check_status ();gydF4y2Ba
3155gydF4y2Ba 返回gydF4y2Ba设置selectedItem;gydF4y2Ba
3156gydF4y2Ba}gydF4y2Ba
3157gydF4y2Ba
3158gydF4y2Ba
3160gydF4y2Ba
3161gydF4y2Ba
3166gydF4y2BaQStringgydF4y2BaRoboDK:许可证gydF4y2Ba(){gydF4y2Ba
3167gydF4y2Ba_check_connection ();gydF4y2Ba
3168gydF4y2Ba_send_Line (gydF4y2Ba“G_License”gydF4y2Ba);gydF4y2Ba
3169gydF4y2BaQString license = _recv_Line();gydF4y2Ba
3170gydF4y2Ba_check_status ();gydF4y2Ba
3171gydF4y2Ba 返回gydF4y2Ba执照;gydF4y2Ba
3172gydF4y2Ba}gydF4y2Ba
3173gydF4y2Ba
3178gydF4y2BaQList <项目>gydF4y2BaRoboDK:选择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(gydF4y2BaintgydF4y2BaI = 0;I < nitems;我+ +){gydF4y2Ba
3184gydF4y2Balist_items.append (_recv_Item ());gydF4y2Ba
3185gydF4y2Ba}gydF4y2Ba
3186gydF4y2Ba_check_status ();gydF4y2Ba
3187gydF4y2Ba 返回gydF4y2Balist_items;gydF4y2Ba
3188gydF4y2Ba}gydF4y2Ba
3189gydF4y2Ba
3194gydF4y2Ba 无效gydF4y2Ba RoboDK: setSelectiongydF4y2Ba(QList < Item > list_items) {gydF4y2Ba
3195gydF4y2Ba_check_connection ();gydF4y2Ba
3196gydF4y2Ba_send_Line (gydF4y2Ba“S_Selection”gydF4y2Ba);gydF4y2Ba
3197gydF4y2Ba_send_Int (list_items.length ());gydF4y2Ba
3198gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2BaI = 0;I < list_items.length();我+ +){gydF4y2Ba
3199gydF4y2Ba_send_Item (list_items[我]);gydF4y2Ba
3200gydF4y2Ba}gydF4y2Ba
3201gydF4y2Ba_check_status ();gydF4y2Ba
3202gydF4y2Ba}gydF4y2Ba
3203gydF4y2Ba
3204gydF4y2Ba
3209gydF4y2Ba 项gydF4y2Ba RoboDK: Popup_ISO9283_CubeProgramgydF4y2Ba(gydF4y2Ba项gydF4y2Ba*机器人,gydF4y2BatXYZgydF4y2Ba中心,gydF4y2Ba双gydF4y2Ba方面,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
3210gydF4y2Ba / / _require_build (5177);gydF4y2Ba
3211gydF4y2Ba 项gydF4y2Baiso_program;gydF4y2Ba
3212gydF4y2Ba_check_connection ();gydF4y2Ba
3213gydF4y2Ba 如果gydF4y2Ba(中心= =gydF4y2BanullptrgydF4y2Ba){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]= side;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
3235gydF4y2Ba}gydF4y2Ba
3236gydF4y2Ba}gydF4y2Ba
3237gydF4y2Ba 返回gydF4y2Baiso_program;gydF4y2Ba
3238gydF4y2Ba}gydF4y2Ba
3239gydF4y2Ba
3240gydF4y2Ba
3241gydF4y2Ba
3242gydF4y2Ba
3243gydF4y2Ba 保龄球gydF4y2Ba RoboDK:文件集gydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &path_file_local,gydF4y2Ba常量gydF4y2BaQString &file_remote,gydF4y2Ba保龄球gydF4y2Baload_file,gydF4y2Ba项gydF4y2Ba* attach_to) {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
3256gydF4y2Ba}gydF4y2Ba
3257gydF4y2Ba 而gydF4y2Ba(gydF4y2Ba真正的gydF4y2Ba){gydF4y2Ba
3258gydF4y2BaQByteArray缓冲区(以(1024));gydF4y2Ba
3259gydF4y2Ba 如果gydF4y2Ba(buffer.size() == 0){gydF4y2Ba
3260gydF4y2Ba 打破gydF4y2Ba;gydF4y2Ba
3261gydF4y2Ba}gydF4y2Ba
3262gydF4y2Ba / /警告!没有任何东西可以保证发送所有的字节gydF4y2Ba
3263gydF4y2Basz_sent += _COM->write(buffer);gydF4y2Ba
3264gydF4y2BaqDebug () < “发送文件”gydF4y2Ba<< path_file_local << 100*sz_sent/nbytes;gydF4y2Ba
3265gydF4y2Ba}gydF4y2Ba
3266gydF4y2Bafile.close ();gydF4y2Ba
3267gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3268gydF4y2Ba}gydF4y2Ba
3269gydF4y2Ba
3270gydF4y2Ba 保龄球gydF4y2Ba RoboDK: FileGetgydF4y2Ba(gydF4y2Ba常量gydF4y2BaQString &path_file_local,gydF4y2Ba项gydF4y2Ba*站,gydF4y2Ba常量gydF4y2BaQString path_file_remote) {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
3281gydF4y2Ba}gydF4y2Ba
3282gydF4y2Ba 而gydF4y2Ba(剩余> 0){gydF4y2Ba
3283gydF4y2BaQByteArray buffer(_COM->read(qMin(剩余,1024)));gydF4y2Ba
3284gydF4y2Ba剩余-= buffer.size();gydF4y2Ba
3285gydF4y2Bafile.write(缓冲);gydF4y2Ba
3286gydF4y2Ba}gydF4y2Ba
3287gydF4y2Bafile.close ();gydF4y2Ba
3288gydF4y2Ba 如果gydF4y2Ba(! _check_status ()) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3289gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3290gydF4y2Ba}gydF4y2Ba
3291gydF4y2Ba
3292gydF4y2Ba
3293gydF4y2Ba 保龄球gydF4y2BaRoboDK::EmbedWindow(QString window_name, QString docked_name,gydF4y2BaintgydF4y2Basize_w,gydF4y2BaintgydF4y2BaSize_h, quint64 pid,gydF4y2BaintgydF4y2Baarea_add,gydF4y2BaintgydF4y2Baarea_allowed,gydF4y2BaintgydF4y2Ba超时)gydF4y2Ba
3294gydF4y2Ba{gydF4y2Ba
3295gydF4y2Ba 如果gydF4y2Ba(! _check_connection ()) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3296gydF4y2Ba 如果gydF4y2Ba(docked_name = =gydF4y2Ba""gydF4y2Ba) {gydF4y2Ba
3297gydF4y2BaDocked_name = window_name;gydF4y2Ba
3298gydF4y2Ba}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 双gydF4y2Basize_w = {(double)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 intgydF4y2Baresult = _recv_Int();gydF4y2Ba
3310gydF4y2Ba_check_status ();gydF4y2Ba
3311gydF4y2Ba 返回gydF4y2Ba结果> 0;gydF4y2Ba
3312gydF4y2Ba}gydF4y2Ba
3313gydF4y2Ba
3314gydF4y2Ba
3315gydF4y2Ba 保龄球gydF4y2BaRoboDK: EventsListen ()gydF4y2Ba
3316gydF4y2Ba{gydF4y2Ba
3317gydF4y2Ba_COM_EVT =gydF4y2Ba新gydF4y2BaQTcpSocket ();gydF4y2Ba
3318gydF4y2Ba 如果gydF4y2Ba(_IP.isEmpty ()) {gydF4y2Ba
3319gydF4y2Ba_COM_EVT - > connectToHost (gydF4y2Ba“127.0.0.1”gydF4y2Ba, _PORT);gydF4y2Ba/ / QHostAddress:: LocalHost, _PORT);gydF4y2Ba
3320gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
3321gydF4y2Ba_COM_EVT - > connectToHost (_IP _PORT);gydF4y2Ba
3322gydF4y2Ba}gydF4y2Ba
3323gydF4y2BaqDebug() << _COM_EVT->state();gydF4y2Ba
3324gydF4y2Ba_COM_EVT - > waitForConnected (_TIMEOUT);gydF4y2Ba
3325gydF4y2BaqDebug() << _COM_EVT->state();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 intgydF4y2Bastatus = _recv_Int(_COM_EVT);gydF4y2Ba
3332gydF4y2Ba 如果gydF4y2Ba(响应! =gydF4y2Ba“RDK_EVT”gydF4y2Ba|| status = 0)gydF4y2Ba
3333gydF4y2Ba{gydF4y2Ba
3334gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3335gydF4y2Ba}gydF4y2Ba
3336gydF4y2Ba / / _COM_EVT。ReceiveTimeout = 3600 * 1000;gydF4y2Ba
3337gydF4y2Ba / /返回EventsLoop ();gydF4y2Ba
3338gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3339gydF4y2Ba}gydF4y2Ba
3340gydF4y2Ba
3341gydF4y2Ba 保龄球gydF4y2BaRoboDK:: WaitForEvent (gydF4y2BaintgydF4y2Ba&evt, Item &itm)gydF4y2Ba
3342gydF4y2Ba{gydF4y2Ba
3343gydF4y2Baevt = _recv_Int(_COM_EVT);gydF4y2Ba
3344gydF4y2Baitm = _recv_Item(_COM_EVT);gydF4y2Ba
3345gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3346gydF4y2Ba}gydF4y2Ba
3347gydF4y2Ba
3348gydF4y2Ba //从事件循环中接收24 double的数据gydF4y2Ba
3349gydF4y2Ba 保龄球gydF4y2BaRoboDK:: Event_Receive_3D_POS (gydF4y2Ba双gydF4y2Ba*数据,gydF4y2BaintgydF4y2Ba* valueCount) {gydF4y2Ba
3350gydF4y2Ba 返回gydF4y2Ba_recv_Array(数据、valueCount _COM_EVT);gydF4y2Ba
3351gydF4y2Ba}gydF4y2Ba
3352gydF4y2Ba
3353gydF4y2Ba //接收3字节的鼠标数据gydF4y2Ba
3354gydF4y2Ba 保龄球gydF4y2BaRoboDK:: Event_Receive_Mouse_data (gydF4y2BaintgydF4y2Ba*数据){gydF4y2Ba
3355gydF4y2Ba数据[0]= _recv_Int(_COM_EVT);gydF4y2Ba
3356gydF4y2Ba数据[1]= _recv_Int(_COM_EVT);gydF4y2Ba
3357gydF4y2Ba数据[2]= _recv_Int(_COM_EVT);gydF4y2Ba
3358gydF4y2Ba
3359gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3360gydF4y2Ba}gydF4y2Ba
3361gydF4y2Ba
3362gydF4y2Ba 保龄球gydF4y2BaRoboDK::Event_Receive_Event_Moved(Mat *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
3367gydF4y2Ba{gydF4y2Ba
3368gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3369gydF4y2Ba //未来兼容性gydF4y2Ba
3370gydF4y2Ba}gydF4y2Ba
3371gydF4y2Ba
3372gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3373gydF4y2Ba}gydF4y2Ba
3374gydF4y2Ba
3375gydF4y2Ba 保龄球gydF4y2BaRoboDK: Event_Connected ()gydF4y2Ba
3376gydF4y2Ba{gydF4y2Ba
3377gydF4y2Ba 返回gydF4y2Ba_COM_EVT ! =gydF4y2BanullptrgydF4y2Ba&& _COM_EVT->state() == QTcpSocket::ConnectedState;gydF4y2Ba
3378gydF4y2Ba}gydF4y2Ba
3379gydF4y2Ba
3380gydF4y2Ba //-------------------------- 私人 ---------------------------------------gydF4y2Ba
3381gydF4y2Ba
3382gydF4y2Ba 保龄球gydF4y2BaRoboDK: _connected () {gydF4y2Ba
3383gydF4y2Ba 返回gydF4y2Ba_COM ! =gydF4y2BanullptrgydF4y2Ba&& _COM->state() == QTcpSocket::ConnectedState;gydF4y2Ba
3384gydF4y2Ba}gydF4y2Ba
3385gydF4y2Ba
3386gydF4y2Ba
3387gydF4y2Ba 保龄球gydF4y2BaRoboDK: _check_connection () {gydF4y2Ba
3388gydF4y2Ba 如果gydF4y2Ba(_connected ()) {gydF4y2Ba
3389gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3390gydF4y2Ba}gydF4y2Ba
3391gydF4y2Ba 保龄球gydF4y2BaConnection_ok = _connect_smart();gydF4y2Ba
3392gydF4y2Ba / /如果(! connection_ok) {gydF4y2Ba
3393gydF4y2Ba // throw -1;gydF4y2Ba
3394gydF4y2Ba / /}gydF4y2Ba
3395gydF4y2Ba 返回gydF4y2Baconnection_ok;gydF4y2Ba
3396gydF4y2Ba}gydF4y2Ba
3397gydF4y2Ba
3398gydF4y2Ba 保龄球gydF4y2BaRoboDK: _check_status () {gydF4y2Ba
3399gydF4y2Baqint32 status = _recv_Int();gydF4y2Ba
3400gydF4y2Ba 如果gydF4y2Ba(status == 0) {gydF4y2Ba
3401gydF4y2Ba //一切正常gydF4y2Ba
3402gydF4y2Ba //status =状态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//只输出警告gydF4y2Ba
3408gydF4y2Bastrproblems = _recv_Line();gydF4y2Ba
3409gydF4y2BaqDebug () < RoboDK API警告:gydF4y2Ba< < strproblems;gydF4y2Ba
3410gydF4y2Ba 返回gydF4y2Ba0;gydF4y2Ba
3411gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(status == 3){gydF4y2Ba//输出错误gydF4y2Ba
3412gydF4y2Bastrproblems = _recv_Line();gydF4y2Ba
3413gydF4y2BaqDebug () < "RoboDK API错误:"gydF4y2Ba< < strproblems;gydF4y2Ba
3414gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(status == 9) {gydF4y2Ba
3415gydF4y2BaqDebug () < “RoboDK许可证无效”gydF4y2Ba;gydF4y2Ba
3416gydF4y2Ba}gydF4y2Ba
3417gydF4y2Ba / /打印(strproblems);gydF4y2Ba
3418gydF4y2Ba //抛出新的RDKException(strproblems);/ /增加异常(strproblems)gydF4y2Ba
3419gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(状态< 100){gydF4y2Ba
3420gydF4y2BaQString strproblems = _recv_Line();gydF4y2Ba
3421gydF4y2BaqDebug () < "RoboDK API错误:"gydF4y2Ba< < strproblems;gydF4y2Ba
3422gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
3423gydF4y2Ba //抛出新的RDKException("与RoboDK API的通信问题");//raise异常('运行函数的问题');gydF4y2Ba
3424gydF4y2BaqDebug () < “与RoboDK API的通信问题”gydF4y2Ba;gydF4y2Ba
3425gydF4y2Ba}gydF4y2Ba
3426gydF4y2Ba 返回gydF4y2Ba状态;gydF4y2Ba
3427gydF4y2Ba}gydF4y2Ba
3428gydF4y2Ba
3429gydF4y2Ba
3430gydF4y2Ba
3431gydF4y2Ba 无效gydF4y2BaRoboDK: _disconnect () {gydF4y2Ba
3432gydF4y2Ba 如果gydF4y2Ba(_COM ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3433gydF4y2Ba_COM - > deleteLater ();gydF4y2Ba
3434gydF4y2Ba_COM =gydF4y2BanullptrgydF4y2Ba;gydF4y2Ba
3435gydF4y2Ba}gydF4y2Ba
3436gydF4y2Ba}gydF4y2Ba
3437gydF4y2Ba
3438gydF4y2Ba //尝试一个简单的连接到RoboDK,并启动RoboDK如果它没有运行gydF4y2Ba
3439gydF4y2Ba 保龄球gydF4y2BaRoboDK: _connect_smart () {gydF4y2Ba
3440gydF4y2Ba //与robodk建立连接。Robodk必须正在运行,否则,它将尝试启动它gydF4y2Ba
3441gydF4y2Ba 如果gydF4y2Ba(_connect ()) {gydF4y2Ba
3442gydF4y2BaqDebug () < “RoboDK API已连接”gydF4y2Ba;gydF4y2Ba
3443gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3444gydF4y2Ba}gydF4y2Ba
3445gydF4y2Ba
3446gydF4y2BaqDebug () < "...试图启动RoboDK:”gydF4y2Ba<< _robodk_bin <”“gydF4y2Ba< < _ARGUMENTS;gydF4y2Ba
3447gydF4y2Ba //启动RoboDKgydF4y2Ba
3448gydF4y2BaQProcess *p =gydF4y2Ba新gydF4y2BaQProcess ();gydF4y2Ba
3449gydF4y2Ba // _arguments = "/ debug ";gydF4y2Ba
3450gydF4y2Bap - >开始(_ROBODK_BIN _ARGUMENTS.split (gydF4y2Ba”“gydF4y2Ba, QString:: SkipEmptyParts));gydF4y2Ba
3451gydF4y2Bap - > setReadChannel (QProcess:: StandardOutput);gydF4y2Ba
3452gydF4y2Ba / / p - > waitForReadyRead (10000);gydF4y2Ba
3453gydF4y2Ba_PROCESS = p->processId();gydF4y2Ba
3454gydF4y2Ba 而gydF4y2Ba(p->canReadLine() || p->waitForReadyRead(5000)){gydF4y2Ba
3455gydF4y2BaQString line = QString::fromUtf8(p->readLine().trim ());gydF4y2Ba
3456gydF4y2Ba //qDebug() << "RoboDK process: " << line;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
3464gydF4y2Ba}gydF4y2Ba
3465gydF4y2Ba 返回gydF4y2Bais_connected;gydF4y2Ba
3466gydF4y2Ba}gydF4y2Ba
3467gydF4y2Ba}gydF4y2Ba
3468gydF4y2BaqDebug () < “无法启动RoboDK!”gydF4y2Ba;gydF4y2Ba
3469gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3470gydF4y2Ba}gydF4y2Ba
3471gydF4y2Ba
3472gydF4y2Ba //尝试简单连接到RoboDKgydF4y2Ba
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/ / QHostAddress:: LocalHost, _PORT);gydF4y2Ba
3478gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
3479gydF4y2Ba_COM - > connectToHost (_IP _PORT);gydF4y2Ba
3480gydF4y2Ba}gydF4y2Ba
3481gydF4y2Ba //通常,5 msec对于localhost来说就足够了gydF4y2Ba
3482gydF4y2Ba 如果gydF4y2Ba(! _COM - > waitForConnected (_TIMEOUT)) {gydF4y2Ba
3483gydF4y2Ba_COM - > deleteLater ();gydF4y2Ba
3484gydF4y2Ba_COM =gydF4y2BanullptrgydF4y2Ba;gydF4y2Ba
3485gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3486gydF4y2Ba}gydF4y2Ba
3487gydF4y2Ba
3488gydF4y2Ba // RoboDK协议,检查我们连接到正确的端口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
3491gydF4y2Ba
3492gydF4y2Ba // 5 msec对于localhost来说应该足够了gydF4y2Ba
3493gydF4y2Ba / *如果(! _COM - > waitForBytesWritten (_TIMEOUT)) {gydF4y2Ba
3494gydF4y2Ba _COM - > deleteLater ();gydF4y2Ba
3495gydF4y2Ba _COM = nullptr;gydF4y2Ba
3496gydF4y2Ba 返回错误;gydF4y2Ba
3497gydF4y2Ba } * /gydF4y2Ba
3498gydF4y2Ba // 10 msec对于localhost来说应该足够了gydF4y2Ba
3499gydF4y2Ba 如果gydF4y2Ba(! _COM - > canReadLine () & & ! _COM - > waitForReadyRead (_TIMEOUT)) {gydF4y2Ba
3500gydF4y2Ba_COM - > deleteLater ();gydF4y2Ba
3501gydF4y2Ba_COM =gydF4y2BanullptrgydF4y2Ba;gydF4y2Ba
3502gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3503gydF4y2Ba}gydF4y2Ba
3504gydF4y2BaQString读(_COM - > readAll ());gydF4y2Ba
3505gydF4y2Ba //确保我们收到RoboDK的OKgydF4y2Ba
3506gydF4y2Ba 如果gydF4y2Ba(! read.startsWith (ROBODK_API_READY_STRING)) {gydF4y2Ba
3507gydF4y2Ba_COM - > deleteLater ();gydF4y2Ba
3508gydF4y2Ba_COM =gydF4y2BanullptrgydF4y2Ba;gydF4y2Ba
3509gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3510gydF4y2Ba}gydF4y2Ba
3511gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3512gydF4y2Ba}gydF4y2Ba
3513gydF4y2Ba
3514gydF4y2Ba
3516gydF4y2Ba 保龄球gydF4y2BaRoboDK: _waitline (QTcpSocket * com) {gydF4y2Ba
3517gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3518gydF4y2Bacom = _COM;gydF4y2Ba
3519gydF4y2Ba}gydF4y2Ba
3520gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3521gydF4y2Ba 而gydF4y2Ba(! com - > canReadLine ()) {gydF4y2Ba
3522gydF4y2Ba 如果gydF4y2Ba(! com - > waitForReadyRead (_TIMEOUT)) {gydF4y2Ba
3523gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3524gydF4y2Ba}gydF4y2Ba
3525gydF4y2Ba}gydF4y2Ba
3526gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3527gydF4y2Ba}gydF4y2Ba
3528gydF4y2BaQString RoboDK::_recv_Line(QTcpSocket *com){gydF4y2Ba/ / QString字符串){gydF4y2Ba
3529gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3530gydF4y2Bacom = _COM;gydF4y2Ba
3531gydF4y2Ba}gydF4y2Ba
3532gydF4y2BaQString字符串;gydF4y2Ba
3533gydF4y2Ba 如果gydF4y2Ba(! _waitline (com)) {gydF4y2Ba
3534gydF4y2Ba 如果gydF4y2Ba(com ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3535gydF4y2Ba //如果出现这种情况,说明存在问题gydF4y2Ba
3536gydF4y2Bacom - > readAll ();gydF4y2Ba
3537gydF4y2Ba}gydF4y2Ba
3538gydF4y2Ba 返回gydF4y2Ba字符串;gydF4y2Ba
3539gydF4y2Ba}gydF4y2Ba
3540gydF4y2BaQByteArray line = _COM->readLine().trim ();gydF4y2Ba//删除最后一个字符\n //.trim ();gydF4y2Ba
3541gydF4y2Ba 字符串gydF4y2Ba.append (QString:: fromUtf8(线));gydF4y2Ba
3542gydF4y2Ba 返回gydF4y2Ba字符串;gydF4y2Ba
3543gydF4y2Ba}gydF4y2Ba
3544gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _send_Line (gydF4y2Ba常量gydF4y2BaQString&gydF4y2Ba字符串gydF4y2BaQTcpSocket * com) {gydF4y2Ba
3545gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3546gydF4y2Bacom = _COM;gydF4y2Ba
3547gydF4y2Ba}gydF4y2Ba
3548gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba| | ! com - > isOpen ()) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3549gydF4y2Bacom - >写(gydF4y2Ba字符串gydF4y2Ba.toUtf8 ());gydF4y2Ba
3550gydF4y2Bacom - >写(ROBODK_API_LF, 1);gydF4y2Ba
3551gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3552gydF4y2Ba}gydF4y2Ba
3553gydF4y2Ba
3554gydF4y2Ba intgydF4y2BaRoboDK: _recv_Int (QTcpSocket * com) {gydF4y2Ba/ / qint32平均数){gydF4y2Ba
3555gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3556gydF4y2Bacom = _COM;gydF4y2Ba
3557gydF4y2Ba}gydF4y2Ba
3558gydF4y2Baqint32价值;gydF4y2Ba//不改变类型gydF4y2Ba
3559gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba){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
3564gydF4y2Ba}gydF4y2Ba
3565gydF4y2Ba}gydF4y2Ba
3566gydF4y2BaQDataStream ds (com);gydF4y2Ba
3567gydF4y2BaDs >>值;gydF4y2Ba
3568gydF4y2Ba 返回gydF4y2Ba价值;gydF4y2Ba
3569gydF4y2Ba}gydF4y2Ba
3570gydF4y2Ba 保龄球gydF4y2BaRoboDK::_send_Int(qint32值,QTcpSocket *com){gydF4y2Ba
3571gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3572gydF4y2Bacom = _COM;gydF4y2Ba
3573gydF4y2Ba}gydF4y2Ba
3574gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba| | ! com - > isOpen ()) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3575gydF4y2BaQDataStream ds (com);gydF4y2Ba
3576gydF4y2BaDs <<值;gydF4y2Ba
3577gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3578gydF4y2Ba}gydF4y2Ba
3579gydF4y2Ba
3580gydF4y2BaRoboDK::_recv_Item(QTcpSocket *com){gydF4y2Ba/ /项目*项目){gydF4y2Ba
3581gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3582gydF4y2Bacom = _COM;gydF4y2Ba
3583gydF4y2Ba}gydF4y2Ba
3584gydF4y2Ba项项目(gydF4y2Ba这gydF4y2Ba);gydF4y2Ba
3585gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba){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
3592gydF4y2Ba}gydF4y2Ba
3593gydF4y2Ba}gydF4y2Ba
3594gydF4y2BaQDataStream ds (com);gydF4y2Ba
3595gydF4y2Bads >> item._PTR;gydF4y2Ba
3596gydF4y2Bads >> item._TYPE;gydF4y2Ba
3597gydF4y2Ba 返回gydF4y2Ba项;gydF4y2Ba
3598gydF4y2Ba}gydF4y2Ba
3599gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _send_Item (gydF4y2Ba常量gydF4y2Ba项*项){gydF4y2Ba
3600gydF4y2Ba 如果gydF4y2Ba(_COM = =gydF4y2BanullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3601gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3602gydF4y2BaQuint64 PTR = 0;gydF4y2Ba
3603gydF4y2Ba 如果gydF4y2Ba(项目! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3604gydF4y2Baptr = item->_PTR;gydF4y2Ba
3605gydF4y2Ba}gydF4y2Ba
3606gydF4y2BaDs << ptr;gydF4y2Ba
3607gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3608gydF4y2Ba}gydF4y2Ba
3609gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _send_Item (gydF4y2Ba常量gydF4y2Ba项目项目){gydF4y2Ba
3610gydF4y2Ba 返回gydF4y2Ba_send_Item(项);gydF4y2Ba
3611gydF4y2Ba}gydF4y2Ba
3612gydF4y2Ba
3613gydF4y2BaMat RoboDK::_recv_Pose(QTcpSocket *com){gydF4y2Ba/ /垫构成){gydF4y2Ba
3614gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3615gydF4y2Bacom = _COM;gydF4y2Ba
3616gydF4y2Ba}gydF4y2Ba
3617gydF4y2Ba
3618gydF4y2Ba垫子构成;gydF4y2Ba
3619gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba返回gydF4y2Ba构成;}gydF4y2Ba
3620gydF4y2Ba intgydF4y2BaSize = 16*gydF4y2Ba运算符gydF4y2Ba(双);gydF4y2Ba
3621gydF4y2Ba 如果gydF4y2Ba(com->bytesAvailable() < size){gydF4y2Ba
3622gydF4y2Bacom - > waitForReadyRead (_TIMEOUT);gydF4y2Ba
3623gydF4y2Ba 如果gydF4y2Ba(com->bytesAvailable() < size){gydF4y2Ba
3624gydF4y2Ba 返回gydF4y2Ba构成;gydF4y2Ba
3625gydF4y2Ba}gydF4y2Ba
3626gydF4y2Ba}gydF4y2Ba
3627gydF4y2BaQDataStream ds (com);gydF4y2Ba
3628gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3629gydF4y2Ba / / ds.setByteOrder (QDataStream:: LittleEndian);gydF4y2Ba
3630gydF4y2Ba 双gydF4y2Bavaluei;gydF4y2Ba
3631gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Baj = 0;j < 4;j + +) {gydF4y2Ba
3632gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 4;我+ +){gydF4y2Ba
3633gydF4y2BaDs >> valuei;gydF4y2Ba
3634gydF4y2Bapose.Set (i, j, valuei);gydF4y2Ba
3635gydF4y2Ba //pose.data()[i][j] = valuei;gydF4y2Ba
3636gydF4y2Ba}gydF4y2Ba
3637gydF4y2Ba}gydF4y2Ba
3638gydF4y2Ba 返回gydF4y2Ba构成;gydF4y2Ba
3639gydF4y2Ba}gydF4y2Ba
3640gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _send_Pose (gydF4y2Ba常量gydF4y2Ba垫子构成){gydF4y2Ba
3641gydF4y2Ba 如果gydF4y2Ba(_COM = =gydF4y2BanullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3642gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3643gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3644gydF4y2Ba / / ds.setByteOrder (QDataStream:: LittleEndian);gydF4y2Ba
3645gydF4y2Ba 双gydF4y2Bavaluei;gydF4y2Ba
3646gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Baj = 0;j < 4;j + +) {gydF4y2Ba
3647gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 4;我+ +){gydF4y2Ba
3648gydF4y2Bavaluei = pose.Get(i,j);gydF4y2Ba
3649gydF4y2BaDs << valuei;gydF4y2Ba
3650gydF4y2Ba}gydF4y2Ba
3651gydF4y2Ba}gydF4y2Ba
3652gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3653gydF4y2Ba}gydF4y2Ba
3654gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _recv_XYZ (gydF4y2BatXYZgydF4y2Bapos) {gydF4y2Ba
3655gydF4y2Ba 如果gydF4y2Ba(_COM = =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3656gydF4y2Ba intgydF4y2BaSize = 3*gydF4y2Ba运算符gydF4y2Ba(双);gydF4y2Ba
3657gydF4y2Ba 如果gydF4y2Ba(_COM->bytesAvailable() < size){gydF4y2Ba
3658gydF4y2Ba_COM - > waitForReadyRead (_TIMEOUT);gydF4y2Ba
3659gydF4y2Ba 如果gydF4y2Ba(_COM->bytesAvailable() < size){gydF4y2Ba
3660gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3661gydF4y2Ba}gydF4y2Ba
3662gydF4y2Ba}gydF4y2Ba
3663gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3664gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3665gydF4y2Ba / / ds.setByteOrder (QDataStream:: LittleEndian);gydF4y2Ba
3666gydF4y2Ba 双gydF4y2Bavaluei;gydF4y2Ba
3667gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 3;我+ +){gydF4y2Ba
3668gydF4y2BaDs >> valuei;gydF4y2Ba
3669gydF4y2BaPos [i] = valuei;gydF4y2Ba
3670gydF4y2Ba}gydF4y2Ba
3671gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3672gydF4y2Ba}gydF4y2Ba
3673gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _send_XYZ (gydF4y2Ba常量gydF4y2Ba tXYZgydF4y2Bapos) {gydF4y2Ba
3674gydF4y2Ba 如果gydF4y2Ba(_COM = =gydF4y2BanullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3675gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3676gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3677gydF4y2Ba / / ds.setByteOrder (QDataStream:: LittleEndian);gydF4y2Ba
3678gydF4y2Ba 双gydF4y2Bavaluei;gydF4y2Ba
3679gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< 3;我+ +){gydF4y2Ba
3680gydF4y2BaValuei = pos[i];gydF4y2Ba
3681gydF4y2BaDs << valuei;gydF4y2Ba
3682gydF4y2Ba}gydF4y2Ba
3683gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3684gydF4y2Ba}gydF4y2Ba
3685gydF4y2Ba 保龄球gydF4y2BaRoboDK: _recv_Array (tJoints * jnts) {gydF4y2Ba
3686gydF4y2Ba 返回gydF4y2Ba_recv_Array (jnts - > _Values, & (jnts - > _nDOFs));gydF4y2Ba
3687gydF4y2Ba}gydF4y2Ba
3688gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _send_Array (gydF4y2Ba常量gydF4y2BatJoints * jnts) {gydF4y2Ba
3689gydF4y2Ba 如果gydF4y2Ba(jnts = =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3690gydF4y2Ba 返回gydF4y2Ba_send_Int (0);gydF4y2Ba
3691gydF4y2Ba}gydF4y2Ba
3692gydF4y2Ba 返回gydF4y2Ba_send_Array (jnts - > _Values jnts - > _nDOFs);gydF4y2Ba
3693gydF4y2Ba}gydF4y2Ba
3694gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _send_Array (gydF4y2Ba常量gydF4y2Ba垫*垫){gydF4y2Ba
3695gydF4y2Ba 如果gydF4y2Ba(垫= =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3696gydF4y2Ba 返回gydF4y2Ba_send_Int (0);gydF4y2Ba
3697gydF4y2Ba}gydF4y2Ba
3698gydF4y2Ba 双gydF4y2Bam44 [16];gydF4y2Ba
3699gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Bac = 0;c < 4;c++) {gydF4y2Ba
3700gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Bar = 0;r < 4;r + +) {gydF4y2Ba
3701gydF4y2Bam44[c*4+r] = mat->Get(r,c);gydF4y2Ba
3702gydF4y2Ba}gydF4y2Ba
3703gydF4y2Ba}gydF4y2Ba
3704gydF4y2Ba 返回gydF4y2Ba_send_Array (m44 16);gydF4y2Ba
3705gydF4y2Ba}gydF4y2Ba
3706gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _recv_Array (gydF4y2Ba双gydF4y2Ba*值,gydF4y2BaintgydF4y2Ba*psize, QTcpSocket *com){gydF4y2Ba
3707gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3708gydF4y2Bacom = _COM;gydF4y2Ba
3709gydF4y2Ba}gydF4y2Ba
3710gydF4y2Ba intgydF4y2Banvalues = _recv_Int();gydF4y2Ba
3711gydF4y2Ba 如果gydF4y2Ba(com = =gydF4y2BanullptrgydF4y2Ba|| nvalues < 0) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3712gydF4y2Ba 如果gydF4y2Ba(psize ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3713gydF4y2Ba*psize = nvalues;gydF4y2Ba
3714gydF4y2Ba}gydF4y2Ba
3715gydF4y2Ba 如果gydF4y2Ba(nvalues < 0 || nvalues > 50){gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba//检查是否值不太大gydF4y2Ba
3716gydF4y2Ba intgydF4y2BaSize = nvalues*gydF4y2Ba运算符gydF4y2Ba(双);gydF4y2Ba
3717gydF4y2Ba 如果gydF4y2Ba(com->bytesAvailable() < size){gydF4y2Ba
3718gydF4y2Bacom - > waitForReadyRead (_TIMEOUT);gydF4y2Ba
3719gydF4y2Ba 如果gydF4y2Ba(com->bytesAvailable() < size){gydF4y2Ba
3720gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3721gydF4y2Ba}gydF4y2Ba
3722gydF4y2Ba}gydF4y2Ba
3723gydF4y2BaQDataStream ds (com);gydF4y2Ba
3724gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3725gydF4y2Ba / / ds.setByteOrder (QDataStream:: LittleEndian);gydF4y2Ba
3726gydF4y2Ba 双gydF4y2Bavaluei;gydF4y2Ba
3727gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< nvalues;我+ +){gydF4y2Ba
3728gydF4y2BaDs >> valuei;gydF4y2Ba
3729gydF4y2Ba值[i] = valuei;gydF4y2Ba
3730gydF4y2Ba}gydF4y2Ba
3731gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3732gydF4y2Ba}gydF4y2Ba
3733gydF4y2Ba
3734gydF4y2Ba 保龄球gydF4y2BaRoboDK:: _send_Array (gydF4y2Ba常量gydF4y2Ba 双gydF4y2Ba*值,gydF4y2BaintgydF4y2Banvalues) {gydF4y2Ba
3735gydF4y2Ba 如果gydF4y2Ba(_COM = =gydF4y2BanullptrgydF4y2Ba| | ! _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
3739gydF4y2Ba / / ds.setByteOrder (QDataStream:: LittleEndian);gydF4y2Ba
3740gydF4y2Ba 双gydF4y2Bavaluei;gydF4y2Ba
3741gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< nvalues;我+ +){gydF4y2Ba
3742gydF4y2BaValuei = values[i];gydF4y2Ba
3743gydF4y2BaDs << valuei;gydF4y2Ba
3744gydF4y2Ba}gydF4y2Ba
3745gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3746gydF4y2Ba}gydF4y2Ba
3747gydF4y2Ba
3748gydF4y2Ba 保龄球gydF4y2BaRoboDK: _recv_Matrix2D (tMatrix2D * *垫){gydF4y2Ba//需要删除后!gydF4y2Ba
3749gydF4y2Baqint32 dim1 = _recv_Int();gydF4y2Ba
3750gydF4y2Baqint32 dim2 = _recv_Int();gydF4y2Ba
3751gydF4y2Ba*垫=gydF4y2BaMatrix2D_CreategydF4y2Ba();gydF4y2Ba
3752gydF4y2Ba / / emxInit_real_T(垫,2);gydF4y2Ba
3753gydF4y2Ba 如果gydF4y2Ba(dim1 < 0 || dim2 < 0){gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3754gydF4y2Ba Matrix2D_Set_SizegydF4y2Ba(*mat, dim1, dim2);gydF4y2Ba
3755gydF4y2Ba 如果gydF4y2Ba(dim1*dim2 <= 0){gydF4y2Ba
3756gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3757gydF4y2Ba}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
3765gydF4y2Ba Matrix2D_DeletegydF4y2Ba(垫);gydF4y2Ba
3766gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba
3767gydF4y2Ba}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(gydF4y2BaintgydF4y2Ba我= 0;我< np;我+ +){gydF4y2Ba
3773gydF4y2BaIndata >>值;gydF4y2Ba
3774gydF4y2Ba(*mat)->data[count] = value;gydF4y2Ba
3775gydF4y2BaCount = Count + 1;gydF4y2Ba
3776gydF4y2Ba}gydF4y2Ba
3777gydF4y2BaBuffer = Buffer。中期(np *gydF4y2Ba运算符gydF4y2Ba(gydF4y2Ba双gydF4y2Ba));gydF4y2Ba
3778gydF4y2Ba}gydF4y2Ba
3779gydF4y2Ba 返回gydF4y2Ba 假gydF4y2Ba;gydF4y2Ba//我们永远不会到达这里…gydF4y2Ba
3780gydF4y2Ba}gydF4y2Ba
3781gydF4y2Ba 保龄球gydF4y2BaRoboDK: _send_Matrix2D (tMatrix2D *垫){gydF4y2Ba
3782gydF4y2Ba 如果gydF4y2Ba(_COM = =gydF4y2BanullptrgydF4y2Ba| | ! _COM - > isOpen ()) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3783gydF4y2BaQDataStream ds (_COM);gydF4y2Ba
3784gydF4y2Bads.setFloatingPointPrecision (QDataStream:: DoublePrecision);gydF4y2Ba
3785gydF4y2Ba / / ds.setByteOrder (QDataStream:: LittleEndian);gydF4y2Ba
3786gydF4y2BaQint32 dim1 =gydF4y2BaMatrix2D_SizegydF4y2Ba(1)垫;gydF4y2Ba
3787gydF4y2BaQint32 dim2 =gydF4y2BaMatrix2D_SizegydF4y2Ba(垫,2);gydF4y2Ba
3788gydF4y2Ba 保龄球gydF4y2Baok1 = _send_Int(dim1);gydF4y2Ba
3789gydF4y2Ba 保龄球gydF4y2Baok2 = _send_Int(dim2);gydF4y2Ba
3790gydF4y2Ba 如果gydF4y2Ba(!Ok1 || !ok2) {gydF4y2Ba返回gydF4y2Ba 假gydF4y2Ba;}gydF4y2Ba
3791gydF4y2Ba 双gydF4y2Bavaluei;gydF4y2Ba
3792gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Baj = 0;j < dim2;j + +) {gydF4y2Ba
3793gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我< dim1;我+ +){gydF4y2Ba
3794gydF4y2Bavaluei =gydF4y2BaMatrix2D_Get_ijgydF4y2Ba(mat, i, j);gydF4y2Ba
3795gydF4y2BaDs << valuei;gydF4y2Ba
3796gydF4y2Ba}gydF4y2Ba
3797gydF4y2Ba}gydF4y2Ba
3798gydF4y2Ba 返回gydF4y2Ba 真正的gydF4y2Ba;gydF4y2Ba
3799gydF4y2Ba}gydF4y2Ba
3800gydF4y2Ba //私有移动类型,用于公共方法(MoveJ和moveel)gydF4y2Ba
3801gydF4y2Ba 无效gydF4y2BaRoboDK:: _moveX (gydF4y2Ba常量gydF4y2Ba项目目标,gydF4y2Ba常量gydF4y2BatJoints *关节,gydF4y2Ba常量gydF4y2Ba垫* mat_target,gydF4y2Ba常量gydF4y2Ba项目* itemrobot,gydF4y2BaintgydF4y2Bamovetype,gydF4y2Ba保龄球gydF4y2Ba阻塞){gydF4y2Ba
3802gydF4y2Baitemrobot - > WaitMove ();gydF4y2Ba
3803gydF4y2Ba_send_Line (gydF4y2Ba“MoveX”gydF4y2Ba);gydF4y2Ba
3804gydF4y2Ba_send_Int (movetype);gydF4y2Ba
3805gydF4y2Ba 如果gydF4y2Ba(目标! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3806gydF4y2Ba_send_Int (3);gydF4y2Ba
3807gydF4y2Ba_send_Array (tJoints *)gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3808gydF4y2Ba_send_Item(目标);gydF4y2Ba
3809gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(关节! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3810gydF4y2Ba_send_Int (1);gydF4y2Ba
3811gydF4y2Ba_send_Array(关节);gydF4y2Ba
3812gydF4y2Ba_send_Item (gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3813gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(mat_target ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba// && mat_target. ishomoheterogeneous ()) {gydF4y2Ba
3814gydF4y2Ba_send_Int (2);gydF4y2Ba
3815gydF4y2Ba_send_Array (mat_target);gydF4y2Ba//保持为数组!gydF4y2Ba
3816gydF4y2Ba_send_Item (gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3817gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
3818gydF4y2Ba //抛出新的RDKException("无效的目标类型");//raise异常('运行函数的问题');gydF4y2Ba
3819gydF4y2Ba 扔gydF4y2Ba0;gydF4y2Ba
3820gydF4y2Ba}gydF4y2Ba
3821gydF4y2Ba_send_Item (itemrobot);gydF4y2Ba
3822gydF4y2Ba_check_status ();gydF4y2Ba
3823gydF4y2Ba 如果gydF4y2Ba(屏蔽){gydF4y2Ba
3824gydF4y2Baitemrobot - > WaitMove ();gydF4y2Ba
3825gydF4y2Ba}gydF4y2Ba
3826gydF4y2Ba}gydF4y2Ba
3827gydF4y2Ba //私有移动类型,用于公共方法(MoveJ和moveel)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 ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba
3833gydF4y2Ba_send_Int (3);gydF4y2Ba
3834gydF4y2Ba_send_Array (tJoints *)gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3835gydF4y2Ba_send_Item (target1);gydF4y2Ba
3836gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(joints1 ! =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3837gydF4y2Ba_send_Int (1);gydF4y2Ba
3838gydF4y2Ba_send_Array (joints1);gydF4y2Ba
3839gydF4y2Ba_send_Item (gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3840gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(mat_target1 ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba// && mat_target1. ishomohomogeneous ()) {gydF4y2Ba
3841gydF4y2Ba_send_Int (2);gydF4y2Ba
3842gydF4y2Ba_send_Array (mat_target1);gydF4y2Ba
3843gydF4y2Ba_send_Item (gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3844gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
3845gydF4y2Ba 扔gydF4y2Ba0;gydF4y2Ba
3846gydF4y2Ba //抛出新的RDKException("Invalid type of target 1");gydF4y2Ba
3847gydF4y2Ba}gydF4y2Ba
3849gydF4y2Ba 如果gydF4y2Ba(target2 ! =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3850gydF4y2Ba_send_Int (3);gydF4y2Ba
3851gydF4y2Ba_send_Array (tJoints *)gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3852gydF4y2Ba_send_Item (target2);gydF4y2Ba
3853gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(joints2 ! =gydF4y2BanullptrgydF4y2Ba) {gydF4y2Ba
3854gydF4y2Ba_send_Int (1);gydF4y2Ba
3855gydF4y2Ba_send_Array (joints2);gydF4y2Ba
3856gydF4y2Ba_send_Item (gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3857gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba 如果gydF4y2Ba(mat_target2 ! =gydF4y2BanullptrgydF4y2Ba){gydF4y2Ba// && mat_target2. ishomohomogeneous ()) {gydF4y2Ba
3858gydF4y2Ba_send_Int (2);gydF4y2Ba
3859gydF4y2Ba_send_Array (mat_target2);gydF4y2Ba
3860gydF4y2Ba_send_Item (gydF4y2BanullptrgydF4y2Ba);gydF4y2Ba
3861gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
3862gydF4y2Ba 扔gydF4y2Ba0;gydF4y2Ba
3863gydF4y2Ba //抛出新的RDKException("Invalid type of target 2");gydF4y2Ba
3864gydF4y2Ba}gydF4y2Ba
3866gydF4y2Ba_send_Item (itemrobot);gydF4y2Ba
3867gydF4y2Ba_check_status ();gydF4y2Ba
3868gydF4y2Ba 如果gydF4y2Ba(屏蔽){gydF4y2Ba
3869gydF4y2Baitemrobot - > WaitMove ();gydF4y2Ba
3870gydF4y2Ba}gydF4y2Ba
3871gydF4y2Ba}gydF4y2Ba
3872gydF4y2Ba
3873gydF4y2Ba
3874gydF4y2Ba
3875gydF4y2Ba
3876gydF4y2Ba
3877gydF4y2Ba
3878gydF4y2Ba
3879gydF4y2Ba
3880gydF4y2Ba
3881gydF4y2Ba
3882gydF4y2Ba
3883gydF4y2Ba
3884gydF4y2Ba
3885gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
3886gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
3887gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
3888gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
3889gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
3890gydF4y2Ba //---------------------------------------------------------------------------------------------------gydF4y2Ba
3892gydF4y2Ba //二维矩阵函数gydF4y2Ba
3894gydF4y2Ba 无效gydF4y2BaemxInit_real_T (tMatrix2D * * pEmxArraygydF4y2BaintgydF4y2BanumDimensions)gydF4y2Ba
3895gydF4y2Ba{gydF4y2Ba
3896gydF4y2BatMatrix2D * emxArray;gydF4y2Ba
3897gydF4y2Ba intgydF4y2Ba我;gydF4y2Ba
3898gydF4y2Ba*pEmxArray = (tMatrix2D *)malloc(gydF4y2Ba运算符gydF4y2Ba(tMatrix2D));gydF4y2Ba
3899gydF4y2BaemxArray = *pEmxArray;gydF4y2Ba
3900gydF4y2BaemxArray->data = (gydF4y2Ba双gydF4y2Ba*)零;gydF4y2Ba
3901gydF4y2BaemxArray->numDimensions = numDimensions;gydF4y2Ba
3902gydF4y2BaemxArray->size = (gydF4y2BaintgydF4y2Ba*) malloc ((gydF4y2Ba无符号gydF4y2Ba intgydF4y2Ba)(gydF4y2Ba运算符gydF4y2Ba(int) * numDimensions);gydF4y2Ba
3903gydF4y2BaemxArray->allocatedSize = 0;gydF4y2Ba
3904gydF4y2BaemxArray - > canFreeData =gydF4y2Ba真正的gydF4y2Ba;gydF4y2Ba
3905gydF4y2Ba 为gydF4y2Ba(i = 0;i < numDimensions;我+ +){gydF4y2Ba
3906gydF4y2BaemxArray->size[i] = 0;gydF4y2Ba
3907gydF4y2Ba}gydF4y2Ba
3908gydF4y2Ba}gydF4y2Ba
3911gydF4y2Ba tMatrix2DgydF4y2Ba*矩阵;gydF4y2Ba
3912gydF4y2BaemxInit_real_T ((gydF4y2BatMatrix2DgydF4y2Ba* *)(矩阵),2);gydF4y2Ba
3913gydF4y2Ba 返回gydF4y2Ba矩阵;gydF4y2Ba
3914gydF4y2Ba}gydF4y2Ba
3915gydF4y2Ba
3916gydF4y2Ba
3917gydF4y2Ba 无效gydF4y2BaemxFree_real_T (tMatrix2D * * pEmxArray) {gydF4y2Ba
3918gydF4y2Ba 如果gydF4y2Ba(*pEmxArray != (tMatrix2D *)NULL) {gydF4y2Ba
3919gydF4y2Ba 如果gydF4y2Ba((*pEmxArray)->data != (gydF4y2Ba双gydF4y2Ba*)NULL) && (*pEmxArray)->canFreeData) {gydF4y2Ba
3920gydF4y2Ba免费(gydF4y2Ba无效gydF4y2Ba*) (* pEmxArray) - >数据);gydF4y2Ba
3921gydF4y2Ba}gydF4y2Ba
3922gydF4y2Ba免费(gydF4y2Ba无效gydF4y2Ba*) (* pEmxArray) - >大小);gydF4y2Ba
3923gydF4y2Ba免费(gydF4y2Ba无效gydF4y2Ba*) * pEmxArray);gydF4y2Ba
3924gydF4y2Ba*pEmxArray = (tMatrix2D *)NULL;gydF4y2Ba
3925gydF4y2Ba}gydF4y2Ba
3926gydF4y2Ba}gydF4y2Ba
3927gydF4y2Ba
3928gydF4y2Ba 无效gydF4y2Ba Matrix2D_DeletegydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba* *垫){gydF4y2Ba
3929gydF4y2BaemxFree_real_T ((gydF4y2BatMatrix2DgydF4y2Ba* *)(垫));gydF4y2Ba
3930gydF4y2Ba}gydF4y2Ba
3931gydF4y2Ba
3932gydF4y2Ba
3933gydF4y2Ba
3934gydF4y2Ba 无效gydF4y2BaemxEnsureCapacity (tMatrix2D * emxArray,gydF4y2BaintgydF4y2BaoldNumel,gydF4y2Ba无符号gydF4y2Ba intgydF4y2BaelementSize) {gydF4y2Ba
3935gydF4y2Ba intgydF4y2BanewNumel;gydF4y2Ba
3936gydF4y2Ba intgydF4y2Ba我;gydF4y2Ba
3937gydF4y2Ba 双gydF4y2Ba* newData;gydF4y2Ba
3938gydF4y2Ba 如果gydF4y2Ba(oldNumel < 0) {gydF4y2Ba
3939gydF4y2BaoldNumel = 0;gydF4y2Ba
3940gydF4y2Ba}gydF4y2Ba
3941gydF4y2BanewNumel = 1;gydF4y2Ba
3942gydF4y2Ba 为gydF4y2Ba(i = 0;i < emxArray->numDimensions;我+ +){gydF4y2Ba
3943gydF4y2BanewNumel *= emxArray->size[i];gydF4y2Ba
3944gydF4y2Ba}gydF4y2Ba
3945gydF4y2Ba 如果gydF4y2Ba(newnummel > emxArray->allocatedSize) {gydF4y2Ba
3946gydF4y2Bai = emxArray->allocatedSize;gydF4y2Ba
3947gydF4y2Ba 如果gydF4y2Ba(i < 16) {gydF4y2Ba
3948gydF4y2BaI = 16;gydF4y2Ba
3949gydF4y2Ba}gydF4y2Ba
3950gydF4y2Ba 而gydF4y2Ba(i < newNumel) {gydF4y2Ba
3951gydF4y2Ba 如果gydF4y2Ba(i > 1073741823) {gydF4y2Ba
3952gydF4y2Ba我= (2147483647);gydF4y2Ba/ / MAX_int32_T;gydF4y2Ba
3953gydF4y2Ba}gydF4y2Ba其他的gydF4y2Ba{gydF4y2Ba
3954gydF4y2BaI <<= 1;gydF4y2Ba
3955gydF4y2Ba}gydF4y2Ba
3956gydF4y2Ba}gydF4y2Ba
3957gydF4y2BanewData = (gydF4y2Ba双gydF4y2Ba*) calloc ((gydF4y2Ba无符号gydF4y2Ba intgydF4y2Ba我,elementSize);gydF4y2Ba
3958gydF4y2Ba 如果gydF4y2Ba(emxArray->data != NULL) {gydF4y2Ba
3959gydF4y2Bamemcpy(newData, emxArray->data, elementSize * oldnummel);gydF4y2Ba
3960gydF4y2Ba 如果gydF4y2Ba(emxArray - > canFreeData) {gydF4y2Ba
3961gydF4y2Ba自由(emxArray - >数据);gydF4y2Ba
3962gydF4y2Ba}gydF4y2Ba
3963gydF4y2Ba}gydF4y2Ba
3964gydF4y2BaemxArray->data = newData;gydF4y2Ba
3965gydF4y2BaemxArray->allocatedSize = i;gydF4y2Ba
3966gydF4y2BaemxArray - > canFreeData =gydF4y2Ba真正的gydF4y2Ba;gydF4y2Ba
3967gydF4y2Ba}gydF4y2Ba
3968gydF4y2Ba}gydF4y2Ba
3969gydF4y2Ba
3970gydF4y2Ba 无效gydF4y2Ba Matrix2D_Set_SizegydF4y2Ba(gydF4y2BatMatrix2DgydF4y2Ba*垫,gydF4y2BaintgydF4y2Ba行,gydF4y2BaintgydF4y2Ba关口){gydF4y2Ba
3971gydF4y2Ba intgydF4y2Baold_numel;gydF4y2Ba
3972gydF4y2Ba intgydF4y2Banumbel;gydF4y2Ba
3973gydF4y2BaOld_numel = mat->gydF4y2Ba大小gydF4y2Ba[0] * mat->gydF4y2Ba大小gydF4y2Ba[1];gydF4y2Ba
3974gydF4y2Ba垫- - - >gydF4y2Ba大小gydF4y2Ba[0] = rows;gydF4y2Ba
3975gydF4y2Ba垫- - - >gydF4y2Ba大小gydF4y2Ba[1] = cols;gydF4y2Ba
3976gydF4y2Ba数字= rows*cols;gydF4y2Ba
3977gydF4y2Baold_numel emxEnsureCapacity(垫,gydF4y2Ba运算符gydF4y2Ba(gydF4y2Ba双gydF4y2Ba));gydF4y2Ba
3978gydF4y2Ba / * (i = 0;我< numbel;我+ +){gydF4y2Ba
3979gydF4y2Ba Mat ->data[i] = 0.0;gydF4y2Ba
3980gydF4y2Ba } * /gydF4y2Ba
3981gydF4y2Ba}gydF4y2Ba
3982gydF4y2Ba
3983gydF4y2Ba intgydF4y2Ba Matrix2D_SizegydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tMatrix2DgydF4y2Ba* var,gydF4y2BaintgydF4y2Ba昏暗的){gydF4y2Ba// one based !!gydF4y2Ba
3984gydF4y2Ba 如果gydF4y2Ba(var - >gydF4y2BanumDimensionsgydF4y2Ba>= dim) {gydF4y2Ba
3985gydF4y2Ba 返回gydF4y2Bavar - - - >gydF4y2Ba大小gydF4y2Ba[dim - 1];gydF4y2Ba
3986gydF4y2Ba}gydF4y2Ba
3987gydF4y2Ba 其他的gydF4y2Ba{gydF4y2Ba
3988gydF4y2Ba 返回gydF4y2Ba0;gydF4y2Ba
3989gydF4y2Ba}gydF4y2Ba
3990gydF4y2Ba}gydF4y2Ba
3991gydF4y2Ba intgydF4y2Ba Matrix2D_Get_ncolsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tMatrix2DgydF4y2Ba* var) {gydF4y2Ba
3992gydF4y2Ba 返回gydF4y2Ba Matrix2D_SizegydF4y2Ba(var, 2);gydF4y2Ba
3993gydF4y2Ba}gydF4y2Ba
3994gydF4y2Ba intgydF4y2Ba Matrix2D_Get_nrowsgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tMatrix2DgydF4y2Ba* var) {gydF4y2Ba
3995gydF4y2Ba 返回gydF4y2Ba Matrix2D_SizegydF4y2Ba(var, 1);gydF4y2Ba
3996gydF4y2Ba}gydF4y2Ba
3997gydF4y2Ba 双gydF4y2Ba Matrix2D_Get_ijgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tMatrix2DgydF4y2Ba* var,gydF4y2BaintgydF4y2Ba我,gydF4y2BaintgydF4y2Baj) {gydF4y2Ba//从零开始!!gydF4y2Ba
3998gydF4y2Ba 返回gydF4y2Bavar - - - >gydF4y2Ba数据gydF4y2Ba[var - >gydF4y2Ba大小gydF4y2Ba[0] * j + i];gydF4y2Ba
3999gydF4y2Ba}gydF4y2Ba
4000gydF4y2Ba 无效gydF4y2BaMatrix2D_SET_ij (gydF4y2Ba常量gydF4y2BatMatrix2D * var,gydF4y2BaintgydF4y2Ba我,gydF4y2BaintgydF4y2Baj,gydF4y2Ba双gydF4y2Ba值){gydF4y2Ba//从零开始!!gydF4y2Ba
4001gydF4y2BaVar ->data[Var ->size[0] * j + i] = value;gydF4y2Ba
4002gydF4y2Ba}gydF4y2Ba
4003gydF4y2Ba
4004gydF4y2Ba 双gydF4y2Ba*gydF4y2BaMatrix2D_Get_colgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tMatrix2DgydF4y2Ba* var,gydF4y2BaintgydF4y2Ba上校){gydF4y2Ba//从零开始!!gydF4y2Ba
4005gydF4y2Ba 返回gydF4y2Ba(var - >gydF4y2Ba数据gydF4y2Ba+ var - >gydF4y2Ba大小gydF4y2Ba[0] * col);gydF4y2Ba
4006gydF4y2Ba}gydF4y2Ba
4007gydF4y2Ba
4008gydF4y2Ba
4009gydF4y2Ba 无效gydF4y2BaMatrix2D_Add (tMatrix2D * var,gydF4y2Ba常量gydF4y2Ba 双gydF4y2Ba*数组,gydF4y2BaintgydF4y2Ba元素个数){gydF4y2Ba
4010gydF4y2Ba intgydF4y2Baoldnumel;gydF4y2Ba
4011gydF4y2Ba intgydF4y2BaSize1 = var->大小[0];gydF4y2Ba
4012gydF4y2Ba intgydF4y2BaSize2 = var->size[1];gydF4y2Ba
4013gydF4y2BaOldnumel = size1*size2;gydF4y2Ba
4014gydF4y2BaVar ->大小[1]= size2 + 1;gydF4y2Ba
4015gydF4y2BaemxEnsureCapacity(var, oldnumel, (gydF4y2BaintgydF4y2Ba)gydF4y2Ba运算符gydF4y2Ba(gydF4y2Ba双gydF4y2Ba));gydF4y2Ba
4016gydF4y2Ba编号= qMin(编号,size1);gydF4y2Ba
4017gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我<元素个数;我+ +){gydF4y2Ba
4018gydF4y2BaVar ->data[size1*size2 + i] = array[i];gydF4y2Ba
4019gydF4y2Ba}gydF4y2Ba
4020gydF4y2Ba}gydF4y2Ba
4021gydF4y2Ba
4022gydF4y2Ba 无效gydF4y2BaMatrix2D_Add (tMatrix2D * var,gydF4y2Ba常量gydF4y2BatMatrix2D * varadd) {gydF4y2Ba
4023gydF4y2Ba intgydF4y2Baoldnumel;gydF4y2Ba
4024gydF4y2Ba intgydF4y2BaSize1 = var->大小[0];gydF4y2Ba
4025gydF4y2Ba intgydF4y2BaSize2 = var->size[1];gydF4y2Ba
4026gydF4y2Ba intgydF4y2Basize1_ap = varadd->size[0];gydF4y2Ba
4027gydF4y2Ba intgydF4y2BaSize2_ap = varadd->size[1];gydF4y2Ba
4028gydF4y2Ba intgydF4y2Ba数字= size1_ap*size2_ap;gydF4y2Ba
4029gydF4y2Ba 如果gydF4y2Ba(size1 != size1_ap){gydF4y2Ba
4030gydF4y2Ba 返回gydF4y2Ba;gydF4y2Ba
4031gydF4y2Ba}gydF4y2Ba
4032gydF4y2BaOldnumel = size1*size2;gydF4y2Ba
4033gydF4y2BaVar ->size[1] = size2 + size2_ap;gydF4y2Ba
4034gydF4y2BaemxEnsureCapacity(var, oldnumel, (gydF4y2BaintgydF4y2Ba)gydF4y2Ba运算符gydF4y2Ba(gydF4y2Ba双gydF4y2Ba));gydF4y2Ba
4035gydF4y2Ba 为gydF4y2Ba(gydF4y2BaintgydF4y2Ba我= 0;我<元素个数;我+ +){gydF4y2Ba
4036gydF4y2BaVar ->data[size1*size2 + i] = varadd->data[i];gydF4y2Ba
4037gydF4y2Ba}gydF4y2Ba
4038gydF4y2Ba}gydF4y2Ba
4039gydF4y2Ba
4040gydF4y2Ba 无效gydF4y2Ba Debug_ArraygydF4y2Ba(gydF4y2Ba常量gydF4y2Ba 双gydF4y2Ba*数组,gydF4y2BaintgydF4y2Baarraysize) {gydF4y2Ba
4041gydF4y2Ba intgydF4y2Ba我;gydF4y2Ba
4042gydF4y2Ba 为gydF4y2Ba(i = 0;I < arraysize;我+ +){gydF4y2Ba
4043gydF4y2Ba / /字符chararray [500];//你最好给你的sprintf()留有空间!gydF4y2Ba
4044gydF4y2Ba / / sprintf (% chararray。”3 f”,阵列[我]);gydF4y2Ba
4045gydF4y2Ba //std::cout << chararray;gydF4y2Ba
4046gydF4y2Baprintf (gydF4y2Ba“% .3f”gydF4y2Ba阵列[我]);gydF4y2Ba
4047gydF4y2Ba 如果gydF4y2Ba(i < arraysize - 1) {gydF4y2Ba
4048gydF4y2Ba //std::cout << ", ";gydF4y2Ba
4049gydF4y2Baprintf (gydF4y2Ba", "gydF4y2Ba);gydF4y2Ba
4050gydF4y2Ba}gydF4y2Ba
4051gydF4y2Ba}gydF4y2Ba
4052gydF4y2Ba}gydF4y2Ba
4053gydF4y2Ba
4054gydF4y2Ba 无效gydF4y2Ba Debug_Matrix2DgydF4y2Ba(gydF4y2Ba常量gydF4y2Ba tMatrix2DgydF4y2Ba* emx) {gydF4y2Ba
4055gydF4y2Ba intgydF4y2Basize1;gydF4y2Ba
4056gydF4y2Ba intgydF4y2Basize2;gydF4y2Ba
4057gydF4y2Ba intgydF4y2Baj;gydF4y2Ba
4058gydF4y2Ba 双gydF4y2Ba*列;gydF4y2Ba
4059gydF4y2Basize1 =gydF4y2BaMatrix2D_Get_nrowsgydF4y2Ba(emx);gydF4y2Ba
4060gydF4y2Basize2 =gydF4y2BaMatrix2D_Get_ncolsgydF4y2Ba(emx);gydF4y2Ba
4061gydF4y2Baprintf (gydF4y2Ba"矩阵大小= [%i, %i]\n"gydF4y2Ba, size1, size2);gydF4y2Ba
4062gydF4y2Ba / / std:: < <”矩阵大小=[%,%我]" < < size1 << " " << size2 < <“\ n”;gydF4y2Ba
4063gydF4y2Ba 为gydF4y2Ba(j = 0;j < size2;j + +) {gydF4y2Ba
4064gydF4y2Ba列=gydF4y2BaMatrix2D_Get_colgydF4y2Ba(emx j);gydF4y2Ba
4065gydF4y2Ba Debug_ArraygydF4y2Ba(列,size1);gydF4y2Ba
4066gydF4y2Baprintf (gydF4y2Ba“\ n”gydF4y2Ba);gydF4y2Ba
4067gydF4y2Ba //std::cout << "\n";gydF4y2Ba
4068gydF4y2Ba}gydF4y2Ba
4069gydF4y2Ba}gydF4y2Ba
4070gydF4y2Ba /*gydF4y2Ba
4071gydF4y2Ba void Debug_Mat(Mat pose, char show_full_pose) {gydF4y2Ba
4072gydF4y2Ba tMatrix4x4 pose_tr;gydF4y2Ba
4073gydF4y2Ba 双xyzwpr [6];gydF4y2Ba
4074gydF4y2Ba int j;gydF4y2Ba
4075gydF4y2Ba If (show_full_pose > 0) {gydF4y2Ba
4076gydF4y2Ba POSE_TR (POSE_TR构成);gydF4y2Ba
4077gydF4y2Ba printf("Pose size = [4x4]\n");gydF4y2Ba
4078gydF4y2Ba //std::cout << "Pose size = [4x4]\n";gydF4y2Ba
4079gydF4y2Ba For (j = 0;J < 4;j + +) {gydF4y2Ba
4080gydF4y2Ba Debug_Array(pose_tr + j * 4,4);gydF4y2Ba
4081gydF4y2Ba printf (" \ n ");gydF4y2Ba
4082gydF4y2Ba //std::cout << "\n";gydF4y2Ba
4083gydF4y2Ba }gydF4y2Ba
4084gydF4y2Ba }gydF4y2Ba
4085gydF4y2Ba 其他{gydF4y2Ba
4086gydF4y2Ba POSE_2_XYZWPR (xyzwpr构成);gydF4y2Ba
4087gydF4y2Ba //std::cout << "XYZWPR = [";gydF4y2Ba
4088gydF4y2Ba printf("XYZWPR = [");gydF4y2Ba
4089gydF4y2Ba Debug_Array (xyzwpr 6);gydF4y2Ba
4090gydF4y2Ba printf(“\ n”);gydF4y2Ba
4091gydF4y2Ba //std::cout << "]\n";gydF4y2Ba
4092gydF4y2Ba }gydF4y2Ba
4093gydF4y2Ba }gydF4y2Ba
4094gydF4y2Ba * /gydF4y2Ba
4095gydF4y2Ba
4096gydF4y2Ba
4097gydF4y2Ba
4098gydF4y2Ba
4099gydF4y2Ba 的ifndef RDK_SKIP_NAMESPACEgydF4y2Ba
4100gydF4y2Ba}gydF4y2Ba
4101gydF4y2Ba # endifgydF4y2Ba
Item类表示RoboDK站中的一个项目。一个物品可以是机器人,一个框架,……gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 1739gydF4y2Ba
ObjectLink(int link_id=0)gydF4y2Ba
返回指向机器人链接几何形状的项指针。这是有用的显示/隐藏某些机器人li…gydF4y2Ba
int run_type=RoboDK::INSTRUCTION_CALL_PROGRAMgydF4y2Ba
在程序中添加程序调用、代码、消息或注释。gydF4y2Ba
RoboDK * RDK()gydF4y2Ba
返回RoboDK链接Robolink()。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 586gydF4y2Ba
垫GeometryPose ()gydF4y2Ba
返回对象几何体相对于它自己的参考系....的位置(姿态)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 840gydF4y2Ba
项目getLink(int type_linked=RoboDK::ITEM_TYPE_ROBOT)gydF4y2Ba
返回一个链接到机器人、对象、工具、程序或机器人加工项目....的项gydF4y2Ba
setMachiningParameters(QString ncfile="", Item part_obj=nullptr, QString options="")gydF4y2Ba
更新机器人铣削路径输入及参数。参数输入可以是NC文件(G-code或APT…)gydF4y2Ba
无效停止()gydF4y2Ba
停止程序或机器人gydF4y2Ba
void MoveC(const Item &itemtarget1, const Item &itemtarget2, bool blocking=true)gydF4y2Ba
将机器人移动到特定目标(“循环移动”模式)。默认情况下,该函数阻塞直到…gydF4y2Ba
* SolveIK_All_Mat2D(const Mat &pose, const Mat *tool=nullptr, const Mat *ref=nullptr)gydF4y2Ba
计算指定机器人和姿态的逆运动学。该函数返回所有可用的…gydF4y2Ba
void setRunType(int program_run_type)gydF4y2Ba
设置程序是在模拟模式下运行还是在真实机器人上运行。使用:“PROGRAM_RUN_ON_SIMULAT…gydF4y2Ba
void setSpeed(双speed_linear,双accel_linear=-1,双speed_关节=-1,双accel_关节=-1)gydF4y2Ba
设置机器人的速度和/或加速度。gydF4y2Ba
int InstructionList(tMatrix2D)gydF4y2Ba
以MxN矩阵的形式返回程序指令列表,其中N是指令的数量,…gydF4y2Ba
空白NewLink ()gydF4y2Ba
为RoboDK创建一个新的通信链路。如果您使用多线程应用程序,请将此用于机器人…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 593gydF4y2Ba
Mat SolveFK(const t关节&关节,const Mat *tool=nullptr, const Mat *ref=nullptr)gydF4y2Ba
为所提供的关节计算机器人的正运动学。工具和参考系…gydF4y2Ba
bool连接(const QString &robot_ip="")gydF4y2Ba
使用相应的机器人驱动程序连接到一个真实的机器人。gydF4y2Ba
setPoseTool(const Mat tool_pose)gydF4y2Ba
设置机器人或工具对象的工具(TCP, tool Center Point)。工具姿势可以是…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 932gydF4y2Ba
void setjoint (const tjoint &jnts)gydF4y2Ba
设置机器人关节或目标关节gydF4y2Ba
(bool check_pointer=falsegydF4y2Ba
检查一个项目是否有效(不为空并且在开放站可用)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 637gydF4y2Ba
void指令(int ins_id, QString &name, int &instype, int &movetype, bool &isjointtarget, Mat &target, t关节&关节)gydF4y2Ba
返回位置id处的程序指令gydF4y2Ba
qint32 _TYPEgydF4y2Ba
项目类型。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 2478gydF4y2Ba
setAccuracyActive(int accurate=1)gydF4y2Ba
设置机器人激活或非激活的精度。机器人必须经过校准才能正确使用…gydF4y2Ba
Mat Pose() constgydF4y2Ba
返回对象、目标或参考系的局部位置(姿态)。例如,……gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 815gydF4y2Ba
void setColor(double colorRGBA[4])gydF4y2Ba
改变机器人/对象/工具的颜色。颜色格式为color =[R,…]gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 983gydF4y2Ba
int类型(gydF4y2Ba
项目类型(对象,机器人,工具,参考,机器人加工项目,…)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 602gydF4y2Ba
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
setDO(const QString &io_var, const QString &io_value)gydF4y2Ba
将变量(输出)设置为给定值。这也可以用来设置任何变量到一个所需的va…gydF4y2Ba
void setPose(const Mat pose)gydF4y2Ba
设置对象、目标或参考帧的局部位置(姿态)。例如,……gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 802gydF4y2Ba
setGeometryPose(const Mat pose)gydF4y2Ba
设置物体几何相对于它自己的参考系....的位置(姿态)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 828gydF4y2Ba
bool忙()gydF4y2Ba
检查机器人或程序当前是否正在运行(繁忙或移动)gydF4y2Ba
空白setAsJointTarget ()gydF4y2Ba
将目标设置为联合目标。一个联合目标移动到一个关节位置,而不考虑车…gydF4y2Ba
int RunCode(const QString ¶meters)gydF4y2Ba
运行一个程序。它返回可以成功执行的指令数量(一个快速进程…gydF4y2Ba
垫PoseTool ()gydF4y2Ba
返回一个项目的工具姿势。如果提供一个机器人,它将获得主动工具的工具姿态……gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 879gydF4y2Ba
bool断开()gydF4y2Ba
断开与真实机器人的连接(使用机器人驱动程序时)gydF4y2Ba
(const Item &robot)gydF4y2Ba
设置程序或目标的机器人。你必须设置机器人连接到一个程序或目标每…gydF4y2Ba
setPoseAbs(const Mat pose)gydF4y2Ba
设置项的全局位置(姿态)。例如,一个物体/帧/目标的位置…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 957gydF4y2Ba
void setjointhome (const tjoint &jnts)gydF4y2Ba
设置机器人关节为home位置gydF4y2Ba
void setParent(项目父)gydF4y2Ba
将项目附加到一个新的父项,同时保持与其父项....的相对位置gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 647gydF4y2Ba
void setPoseFrame(const Mat frame_pose)gydF4y2Ba
设置机器人的参考系(用户系)。框架可以是一个项目或一个姿势....gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 906gydF4y2Ba
void setround(双层数据)gydF4y2Ba
设置机器人运动平滑精度(也称为区域数据值)。gydF4y2Ba
void JointsConfig(const tjoint &joint, tConfig config)gydF4y2Ba
返回一组机器人关节的机器人配置状态。gydF4y2Ba
void setParentStatic(父项)gydF4y2Ba
将项目附加到另一个父节点,同时保持站中当前的绝对位置....gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 660gydF4y2Ba
int instructionlistjoint (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
void ShowTargets(bool visible=true)gydF4y2Ba
在RoboDK树中显示或隐藏一个程序的目标gydF4y2Ba
tjoint关节()常量gydF4y2Ba
返回机器人的当前关节或目标的关节。如果物体是笛卡尔目标,…gydF4y2Ba
void WaitMove(double timeout_sec=300gydF4y2Ba
等待(阻塞)直到机器人完成它的运动。gydF4y2Ba
垫PoseFrame ()gydF4y2Ba
返回一个项目的参考框架姿态。如果提供一个机器人,它将得到工具姿势。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 892gydF4y2Ba
垫PoseAbs ()gydF4y2Ba
返回一个项目的全局位置(姿态)。例如,物体/帧/目标的位置wi…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 970gydF4y2Ba
RoboDK * _RDKgydF4y2Ba
RoboDK链接对象的指针。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 2472gydF4y2Ba
QList< tjoint > SolveIK_All(const Mat &pose, const Mat *tool=nullptr, const Mat *ref=nullptr)gydF4y2Ba
计算指定机器人和姿态的逆运动学。该函数返回所有可用的…gydF4y2Ba
bool isJointTarget() constgydF4y2Ba
如果目标是联合目标(绿色图标)则返回True。否则,目标是笛卡尔目标……gydF4y2Ba
quint64 _PTRgydF4y2Ba
指向RoboDK内部项目的指针。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 2475gydF4y2Ba
void MoveJ(const Item &itemtarget, bool blocking=true)gydF4y2Ba
将机器人移动到特定目标(“移动关节”模式)。默认情况下,该函数阻塞直到ro…gydF4y2Ba
QList< Item > Childs() constgydF4y2Ba
返回附加到所提供的项的子项的列表。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 726gydF4y2Ba
int InstructionCount ()gydF4y2Ba
返回程序的指令数。gydF4y2Ba
setName(const QString &name)gydF4y2Ba
设置RoboDK项目的名称。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 787gydF4y2Ba
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
保存(QString &filename)gydF4y2Ba
保存一个工作站,一个机器人,一个工具或一个对象到一个文件gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 617gydF4y2Ba
void Pause(double time_ms=-1)gydF4y2Ba
在生成代码时,为机器人或程序生成暂停指令。设置为-1(默认值)i…gydF4y2Ba
tjoint JointsHome() constgydF4y2Ba
返回机器人的主关节。这些关节可以在机器人“参数”菜单中手动设置,…gydF4y2Ba
项AttachClosest ()gydF4y2Ba
把最近的物体固定在工具上。返回所附加的项。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 672gydF4y2Ba
void DetachAll(父项)gydF4y2Ba
拆卸任何附在工具上的物体。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 698gydF4y2Ba
void ShowInstructions(bool visible=true)gydF4y2Ba
在RoboDK树中显示或隐藏程序的指令项gydF4y2Ba
(const QString &io_var, const QString &io_value)gydF4y2Ba
设置模拟输出gydF4y2Ba
void JointLimits(t关节*lower_limits, t关节*upper_limits)gydF4y2Ba
检索机器人的关节极限gydF4y2Ba
bool Visible() constgydF4y2Ba
如果项目可见,则返回1,否则返回0。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 744gydF4y2Ba
bool MakeProgram(const QString &filename)gydF4y2Ba
将程序保存到文件中。gydF4y2Ba
空白Delete ()gydF4y2Ba
从站点删除项及其子项。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 624gydF4y2Ba
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
定义:gydF4y2Ba robodk_api.cpp: 757gydF4y2Ba
void MoveL(const Item &itemtarget, bool blocking=true)gydF4y2Ba
将机器人移动到特定目标(“线性移动”模式)。默认情况下,该函数阻塞直到r…gydF4y2Ba
QString setParam(const QString ¶m, const QString &value)gydF4y2Ba
设置具体的项目参数。选择工具-运行脚本-显示命令查看所有可用的命令…gydF4y2Ba
int调用()gydF4y2Ba
运行一个程序。它返回可以成功执行的指令数量(一个快速进程…gydF4y2Ba
空白setAsCartesianTarget ()gydF4y2Ba
将目标设置为笛卡尔目标。笛卡尔目标移动到笛卡尔坐标。gydF4y2Ba
(tMatrix2D *sequence)gydF4y2Ba
显示关节序列gydF4y2Ba
int move_test (const tjoint &joints1, const Mat &pose2, double minstep_mm=-1)gydF4y2Ba
检查线性移动是否没有问题,或者是否有碰撞。gydF4y2Ba
名称()constgydF4y2Ba
返回一个项目的名称。项目的名称始终显示在RoboDK站树中gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 774gydF4y2Ba
bool完成()gydF4y2Ba
断开与RoboDK API的连接。这将刷新任何挂起的程序生成。gydF4y2Ba
AddTool(const Mat &tool_pose, const QString &tool_name="New TCP")gydF4y2Ba
向机器人添加一个空工具,提供工具姿势(4x4矩阵)和工具名称。gydF4y2Ba
tjoint 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 isjointarget, const Mat &target, const tjoint &joint)gydF4y2Ba
在位置id处设置程序指令gydF4y2Ba
QString getAI(const QString &io_var)gydF4y2Ba
获得模拟输入(AI)。此功能仅在使用机器人连接到真正的机器人时有用…gydF4y2Ba
项目detachnearest(项目父)gydF4y2Ba
分离连接到该工具的最近的对象(参见setParentStatic)。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 685gydF4y2Ba
void setJointLimits(const tjoint &lower_limits, const tjoint &upper_limits)gydF4y2Ba
设置机器人的关节极限gydF4y2Ba
Item Parent() constgydF4y2Ba
返回该项的父项gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 711gydF4y2Ba
Mat类表示4x4位姿矩阵。这个对象的主要目的是代表……中的一个姿势。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 506gydF4y2Ba
垫()gydF4y2Ba
创建单位矩阵。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 189gydF4y2Ba
VX(tXYZ) constgydF4y2Ba
得到X向量(N向量)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 230gydF4y2Ba
setVX(双x,双y,双z)gydF4y2Ba
设置X向量值(N向量)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 250gydF4y2Ba
FromXYZRPW(tXYZWPR)gydF4y2Ba
从位置和欧拉角([x,y,z,r,p,w]矢量)计算姿势,结果是相同的…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 480gydF4y2Ba
VY(tXYZ xyz) constgydF4y2Ba
得到Y向量(O向量)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 235gydF4y2Ba
静态垫子转换(双x,双y,双z)gydF4y2Ba
返回一个转换矩阵。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 527gydF4y2Ba
void ToXYZRPW(tXYZWPR xyzwpr) constgydF4y2Ba
计算给定姿态的等效位置和欧拉角([x,y,z,r,p,w]向量)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 382gydF4y2Ba
void setVZ(双x,双y,双z)gydF4y2Ba
设置Z向量值(A向量)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 261gydF4y2Ba
const (int r, int c)gydF4y2Ba
得到一个矩阵值。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 302gydF4y2Ba
bool Valid() constgydF4y2Ba
检查矩阵是否有效。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 523gydF4y2Ba
setVY(双x,双y,双z)gydF4y2Ba
设置Y向量值(O向量)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 255gydF4y2Ba
静垫(双人滑)gydF4y2Ba
返回一个y轴旋转矩阵gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 540gydF4y2Ba
const double * Values(gydF4y2Ba
获取一个指向16位数组的指针(如果定义了ROBODK_API_FLOATS,则为双精度数组或浮点数组)。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 505gydF4y2Ba
Pos(tXYZ xyz) constgydF4y2Ba
得到位置(T位置),单位为mm。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 245gydF4y2Ba
bool MakeHomogeneous ()gydF4y2Ba
力4x4矩阵是齐次的(vx,vy,vz必须是酉向量和尊重:vx x vy = vz)....gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 354gydF4y2Ba
静电地毯(双rz)gydF4y2Ba
返回一个z轴旋转矩阵。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 546gydF4y2Ba
const double * ValuesD(gydF4y2Ba
获取一个指向16位双数组的指针。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 489gydF4y2Ba
双_ddata16 [16]gydF4y2Ba
将数据复制为双数组。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 753gydF4y2Ba
QString (const QString &separator=", ", int precision=3, bool xyzwpr_only=falsegydF4y2Ba
检索姿势的字符串表示形式。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 408gydF4y2Ba
bool FromString(bool QString &str)gydF4y2Ba
给定XYZRPW字符串数组(6个值)设置矩阵gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 444gydF4y2Ba
Mat inv() constgydF4y2Ba
反位姿(假设是齐次矩阵)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 309gydF4y2Ba
void setPos(双x,双y,双z)gydF4y2Ba
设置位置(T position),单位为mm。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 267gydF4y2Ba
VZ(tXYZ) constgydF4y2Ba
得到Z向量(A向量)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 240gydF4y2Ba
bool ishomoheterogeneous()常量gydF4y2Ba
如果矩阵是齐次的则返回true,否则返回false。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 313gydF4y2Ba
bool _validgydF4y2Ba
如果矩阵无效,则标记。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 748gydF4y2Ba
const float * ValuesF(gydF4y2Ba
获取一个指向16位数组的指针,作为浮点数组。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 496gydF4y2Ba
void Set(int r, int c, double value)gydF4y2Ba
设置一个矩阵值。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 293gydF4y2Ba
静态Mat rotx(双rx)gydF4y2Ba
返回x轴旋转矩阵。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 534gydF4y2Ba
XYZRPW_2_Mat(双x,双y,双z,双r,双p,双w)gydF4y2Ba
从位置和欧拉角([x,y,z,r,p,w]矢量)计算姿势,结果是相同的…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 464gydF4y2Ba
这个类是RoboDK API的iterface。使用RoboDK API,您可以自动化某些任务和…gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 762gydF4y2Ba
void setViewPose(const Mat &pose)gydF4y2Ba
设置世界参考框架相对于用户视图(相机/屏幕)的姿态。gydF4y2Ba
setSimulationSpeed(加倍速度)gydF4y2Ba
设置当前模拟速度。如果是实时仿真,请将speed设置为1。最慢的速度是…gydF4y2Ba
@ ITEM_TYPE_PROGRAMgydF4y2Ba
程序项。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 1338gydF4y2Ba
项目getItem(QString名称,int itemtype=-1)gydF4y2Ba
按名称返回一个项目。如果没有精确匹配,它将返回最后一个最接近的匹配。gydF4y2Ba
粘贴(const Item *paste_to=nullptr)gydF4y2Ba
将复制的项粘贴为另一项的依赖项(与Ctrl+V相同)。膏体应在Co…gydF4y2Ba
QList< Item > 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
Item AddPoints(tMatrix2D *points, Item *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
添加要在程序输出中运行的代码。如果程序存在,它也会在模拟中运行程序…gydF4y2Ba
bool LaserTrackerMeasure(tXYZ xyz, tXYZ estimate, bool search=false)gydF4y2Ba
采用激光跟踪仪测量相对于它自己的参考系。如果一个估计值点是pr…gydF4y2Ba
int碰撞(Item item1, Item item2)gydF4y2Ba
如果item1和item2相撞,则返回1。否则返回0。gydF4y2Ba
(const QString &filename, const Item *itemsave=nullptr)gydF4y2Ba
将项保存到文件中。如果没有提供任何项,则保存开放站。gydF4y2Ba
bool IsInside(项目object_inside,项目object_parent)gydF4y2Ba
检查一个对象是否完全在另一个对象中。gydF4y2Ba
QString许可证()gydF4y2Ba
将许可证作为可读的字符串返回(与RoboDK的标题栏中显示的名称相同,…gydF4y2Ba
设置setRunMode(int run_mode=1)gydF4y2Ba
设置RoboDK API的行为。默认情况下,RoboDK显示移动指令的路径模拟…gydF4y2Ba
QString版()gydF4y2Ba
将RoboDK的版本返回为4位字符串:Major.Minor.Revision.BuildgydF4y2Ba
AddFile(const QString &filename, const项目*父=null)gydF4y2Ba
加载一个文件并将其附加到父文件。它可以是RoboDK支持的任何文件。gydF4y2Ba
AddStation(const QString &name)gydF4y2Ba
添加一个新的空站。它返回添加的站点项。gydF4y2Ba
void showascollisions (QList< Item > itemList, QList< bool > collidedList, QList< int > *robot_link_id=nullptr)gydF4y2Ba
显示碰撞项的列表。gydF4y2Ba
bool 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
> > 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, double side=-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="曲线跟踪设置",Item *itemrobot=nullptr)gydF4y2Ba
添加一个新的机器人加工项目。机械加工项目也可以用于3D打印,…gydF4y2Ba
项目AddCurve(tMatrix2D *curvePoints,项目*referenceObject=nullptr, bool addToRef=false, int ProjectionType=PROJECTION_ALONG_NORMAL_RECALC)gydF4y2Ba
添加一个提供点坐标的曲线。提供的点必须是一个顶点列表....gydF4y2Ba
添加程序(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 RunProgram(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 > getItemList(int filter=-1)gydF4y2Ba
返回当前打开的stat中所有可用项的列表(名称或指针列表)。gydF4y2Ba
int Cam2D_SetParams(const QString &cam_params, const Item &cam_item)gydF4y2Ba
设置摄像机参数。gydF4y2Ba
Mat CalibrateReference(tMatrix2D * poses_关节,int方法=CALIBRATE_FRAME_3P_P1_ON_X, bool use_关节=false,项目*机器人=nullptr)gydF4y2Ba
校准一个给定点或关节值列表的参考系。重要:如果机器人是校准…gydF4y2Ba
void RunMessage(const QString &message, bool message_is_comment=false)gydF4y2Ba
在输出机器人程序中显示消息或注释。gydF4y2Ba
AddFrame(const QString &name, Item *itemparent=null)gydF4y2Ba
添加一个可以被机器人引用的新框架。gydF4y2Ba
int getFlagsItem(项目)gydF4y2Ba
检索当前项目标志。项目标志允许定义用户对特定项目的访问权限…gydF4y2Ba
void setActiveStation(项目stn)gydF4y2Ba
设置活动站(项目当前可见)。gydF4y2Ba
Item AddShape(tMatrix2D *trianglePoints, Item *addTo=nullptr, bool shapeOverride=false, Color * Color =nullptr)gydF4y2Ba
添加提供三角形坐标的形状。三角形必须以顶点列表....的形式提供gydF4y2Ba
(const Item &item_object, const QString &cam_params, const Item *cam_item=nullptr)gydF4y2Ba
添加一个模拟2D或深度摄像机作为一个项目。使用Delete删除。gydF4y2Ba
QStringList getItemListNames(int filter=-1)gydF4y2Ba
返回当前打开站中所有可用项目的项目列表(名称列表或项目列表)…gydF4y2Ba
void setWindowState(int windowstate=WINDOWSTATE_NORMAL)gydF4y2Ba
设置RoboDK窗口的状态gydF4y2Ba
空白HideRoboDK ()gydF4y2Ba
隐藏RoboDK窗口。RoboDK将继续在后台运行。gydF4y2Ba
@ INS_TYPE_MOVEgydF4y2Ba
直线或关节运动指令。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 1365gydF4y2Ba
int碰撞()gydF4y2Ba
返回当前处于碰撞状态的对象对的数量。gydF4y2Ba
void Copy(const Item &tocopy)gydF4y2Ba
复制一个项目(与Ctrl+C相同),可以使用Paste()粘贴(Ctrl+V)。gydF4y2Ba
空白CloseStation ()gydF4y2Ba
关闭当前站,不要求保存。gydF4y2Ba
void setParam(const QString ¶m, const QString &value)gydF4y2Ba
从RoboDK站设置全局参数。如果参数存在,则修改为....gydF4y2Ba
无效的更新()gydF4y2Ba
更新屏幕。这将更新所有机器人和内部链接的位置,根据之前…gydF4y2Ba
getParam(const QString ¶m)gydF4y2Ba
从开放的RoboDK站获取全局参数或用户参数。参数也可以修改b…gydF4y2Ba
void ProjectPoints(tMatrix2D *points, tMatrix2D **投影,项目objectProject, int ProjectionType=PROJECTION_ALONG_NORMAL_RECALC)gydF4y2Ba
投射一个给定其坐标的点。所提供的点必须是[XYZ]坐标....的列表gydF4y2Ba
setFlagsRoboDK(int flags= flag_robok_all)gydF4y2Ba
更新RoboDK标志。RoboDK标志允许定义用户有多少访问某些RoboDK f…gydF4y2Ba
空白完成()gydF4y2Ba
断开与RoboDK API的连接。这将刷新任何挂起的程序生成。gydF4y2Ba
void setFlagsItem(Item Item, int flags=FLAG_ITEM_ALL)gydF4y2Ba
更新项目标志。项目标志允许定义用户对特定于项目的特性....的访问权限gydF4y2Ba
void渲染(bool always_render=false)gydF4y2Ba
更新场景。gydF4y2Ba
双SimulationSpeed ()gydF4y2Ba
获取当前模拟速度。如果是实时仿真,请将speed设置为1。gydF4y2Ba
bool文件集(const QString &file_local, const QString &file_remote="", bool load_file=true, Item *attach_to=null)gydF4y2Ba
将文件从当前位置发送到RoboDK实例。gydF4y2Ba
t关节类表示机器人的关节位置(机器人轴)。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 384gydF4y2Ba
int GetValues(double *关节)gydF4y2Ba
getvalue。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 121gydF4y2Ba
tJoints (int ndofs = 0)gydF4y2Ba
tJointsgydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 42gydF4y2Ba
QString (QString &separator=", ", int precision=3gydF4y2Ba
检索联合值的字符串表示形式。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 127gydF4y2Ba
bool Valid() constgydF4y2Ba
检查接头是否有效。例如,当我们要求逆运动学时,没有那么…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 163gydF4y2Ba
int Length()常量gydF4y2Ba
机器人关节轴数(或自由度)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 153gydF4y2Ba
const double * Values(gydF4y2Ba
共同的价值观。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 94gydF4y2Ba
int _nDOFsgydF4y2Ba
自由度的数量gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 485gydF4y2Ba
const double * ValuesD(gydF4y2Ba
共同的价值观。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 80gydF4y2Ba
双_Values [RDK_SIZE_JOINTS_MAX]gydF4y2Ba
联合值(双精度,用于存储联合值)gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 488gydF4y2Ba
bool FromString(bool QString &str)gydF4y2Ba
给定一个以逗号分隔的字符串设置联合值。制表符和空格也是允许的。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 143gydF4y2Ba
void setLength(int new_length)gydF4y2Ba
设置数组的长度(只允许收缩数组)gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 157gydF4y2Ba
浮动_ValuesF [RDK_SIZE_JOINTS_MAX]gydF4y2Ba
联合值(浮点数,用于返回一个副本作为浮点指针)gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 491gydF4y2Ba
const float * ValuesF(gydF4y2Ba
共同的价值观。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 83gydF4y2Ba
void SetValues(const double *关节,int ndofs=-1)gydF4y2Ba
以度或毫米为单位设置联合值。您还可以提供重要的自由度(6…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 104gydF4y2Ba
所有RoboDK API函数都包装在RoboDK_API命名空间中。如果你宁愿忘记R…gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 37gydF4y2Ba
const tMatrix2D *var, int colgydF4y2Ba
返回tMatrix2D的列的指针。列的Matrix2D_Get_nrows值可以是ac…gydF4y2Ba
tMatrix2D * Matrix2D_Create()gydF4y2Ba
创建一个新的2D矩阵tMatrix2D..使用Matrix2D_Delete删除矩阵(以释放内存)....gydF4y2Ba
乒乓球(双人赛)gydF4y2Ba
翻译矩阵类:Mat::roty。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 181gydF4y2Ba
(const tMatrix2D *var)gydF4y2Ba
返回tMatrix2D的列数。gydF4y2Ba
(const tMatrix2D *var, int i, int j)gydF4y2Ba
返回tMatrix2D在[i,j]位置的值。gydF4y2Ba
Mat rotz(双rz)gydF4y2Ba
翻译矩阵类:Mat::rotz。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 185gydF4y2Ba
双tConfig [RDK_SIZE_MAX_CONFIG]gydF4y2Ba
机器人配置定义了机器人的特定状态,不跨越任何奇点....gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 310gydF4y2Ba
Mat transl(双x,双y,双z)gydF4y2Ba
翻译矩阵类:Mat::transl。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 173gydF4y2Ba
void Matrix2D_Set_Size(tMatrix2D *mat, int rows, int cols)gydF4y2Ba
设置tMatrix2D的大小。gydF4y2Ba
(const tMatrix2D *var, int dim)gydF4y2Ba
设置tMatrix2D的大小。gydF4y2Ba
const tMatrix2D *emxgydF4y2Ba
通过STDOUT显示tMatrix2D的内容。这仅用于调试目的。gydF4y2Ba
Mat rotx(双rx)gydF4y2Ba
翻译矩阵类:Mat::rotx。gydF4y2Ba
定义:gydF4y2Ba robodk_api.cpp: 177gydF4y2Ba
双tXYZ [3]gydF4y2Ba
tXYZ (mm)表示以mm为单位的位置或向量gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 299gydF4y2Ba
get_nrows (const tMatrix2D *var)gydF4y2Ba
返回tMatrix2D的行数。gydF4y2Ba
Debug_Array(const double *array, int arraysize)gydF4y2Ba
给定一个双精度数组,它生成一个字符串。gydF4y2Ba
void Matrix2D_Delete(tMatrix2D **mat)gydF4y2Ba
删除一个tMatrix2D。gydF4y2Ba
双tXYZWPR [6]gydF4y2Ba
六个双精度表示机器人关节(通常以度表示)gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 296gydF4y2Ba
Color结构体表示一个RGBA颜色(每个颜色组件应该在[0-1]范围内)gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 336gydF4y2Ba
浮动rgydF4y2Ba
红色的颜色。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 338gydF4y2Ba
一个浮动gydF4y2Ba
Alpha值(0 =透明;1 =不透明)gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 347gydF4y2Ba
浮动bgydF4y2Ba
蓝色的颜色。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 344gydF4y2Ba
浮动ggydF4y2Ba
绿色的颜色。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 341gydF4y2Ba
tMatrix2D结构体表示一个可变大小的2d矩阵。使用Matrix2D_…oeprate…gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 361gydF4y2Ba
双*数据gydF4y2Ba
数据指针。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 363gydF4y2Ba
Int * sizegydF4y2Ba
指向大小数组的指针。gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 366gydF4y2Ba
int numDimensionsgydF4y2Ba
维数(通常为2)gydF4y2Ba
定义:gydF4y2Ba robodk_api.h: 372gydF4y2Ba