report_data.cc
Go to the documentation of this file.
1 /* Copyright 2017 UFACTORY Inc. All Rights Reserved.
2  *
3  * Software License Agreement (BSD License)
4  *
5  * Author: Jimy Zhang <jimy92@163.com>
6  ============================================================================*/
7 #include <stdlib.h>
8 #include <string.h>
11 
13  runing_ = 0;
14  mode_ = 0;
15  cmdnum_ = 0;
16  total_num_ = 0;
17 
18  memset(angle_, 0, sizeof(angle_));
19  memset(pose_, 0, sizeof(pose_));
20  memset(tau_, 0, sizeof(tau_));
21 }
22 
24 
25 int ReportDataDevelop::flush_data(unsigned char *rx_data) {
26  unsigned char *data_fp = &rx_data[4];
27  int sizeof_data = bin8_to_32(rx_data);
28  if (sizeof_data < 87) { return -1; }
29 
30  total_num_ = bin8_to_32(data_fp);
31  if (total_num_ != 87) { return -2; }
32 
33  runing_ = data_fp[4] & 0x0F;
34  mode_ = data_fp[4] >> 4;
35  cmdnum_ = bin8_to_16(&data_fp[5]);
36 
37  hex_to_nfp32(&data_fp[7], angle_, 7);
38  hex_to_nfp32(&data_fp[35], pose_, 6);
39  hex_to_nfp32(&data_fp[59], tau_, 7);
40  return 0;
41 }
42 
44  printf("total = %d\n", total_num_);
45  printf("runing = %d\n", runing_);
46  printf("mode = %d\n", mode_);
47  printf("cmdnum = %d\n", cmdnum_);
48  print_nvect("angle = ", angle_, 7);
49  print_nvect("pose = ", pose_, 6);
50  print_nvect("tau = ", tau_, 7);
51 }
52 
53 
54 
56  runing_ = 0;
57  mode_ = 0;
58  cmdnum_ = 0;
59  memset(angle_, 0, sizeof(angle_));
60  memset(pose_, 0, sizeof(pose_));
61  memset(tau_, 0, sizeof(tau_));
62 
63  mt_brake_ = 0;
64  mt_able_ = 0;
65  err_ = 0;
66  war_ = 0;
67  memset(tcp_offset_, 0, sizeof(tcp_offset_));
68  memset(tcp_load_, 0, sizeof(tcp_load_));
69  collis_sens_ = 0;
70  teach_sens_ = 0;
71  total_num_ = 0;
72 }
73 
75 
76 int ReportDataNorm::flush_data(unsigned char *rx_data) {
77  unsigned char *data_fp = &rx_data[4];
78  int sizeof_data = bin8_to_32(rx_data);
79  if (sizeof_data < 133) {
80  printf("sizeof_data = %d\n", sizeof_data);
81  return -1;
82  }
83 
84  total_num_ = bin8_to_32(data_fp);
85  // 133: legacy bug, actuall total number (data part) is 145 bytes
86  if (total_num_ != 133 && total_num_ != 145) {
87  printf("total_num=%d, sizeof_data=%d\n", total_num_, sizeof_data);
88  return -2;
89  }
90 
91  runing_ = data_fp[4] & 0x0F;
92  mode_ = data_fp[4] >> 4;
93  cmdnum_ = bin8_to_16(&data_fp[5]);
94  hex_to_nfp32(&data_fp[7], angle_, 7);
95  hex_to_nfp32(&data_fp[35], pose_, 6);
96  hex_to_nfp32(&data_fp[59], tau_, 7);
97 
98  mt_brake_ = data_fp[87];
99  mt_able_ = data_fp[88];
100  err_ = data_fp[89];
101  war_ = data_fp[90];
102 
103  hex_to_nfp32(&data_fp[91], tcp_offset_, 6);
104  hex_to_nfp32(&data_fp[115], tcp_load_, 4);
105 
106  collis_sens_ = data_fp[131];
107  teach_sens_ = data_fp[132];
108  hex_to_nfp32(&data_fp[133], gravity_dir_, 3); // length is 12, not taken into account in legacy version.(before firmware v1.1)
109 
110  return 0;
111 }
112 
114  printf("total = %d\n", total_num_);
115  printf("runing = %d\n", runing_);
116  printf("mode = %d\n", mode_);
117  printf("cmdnum = %d\n", cmdnum_);
118  print_nvect("angle = ", angle_, 7);
119  print_nvect("pose = ", pose_, 6);
120  print_nvect("tau = ", tau_, 7);
121 
122 
123  printf("mode = %d\n", mode_);
124  printf("mt_brake= %x\n", mt_brake_);
125  printf("mt_able = %x\n", mt_able_);
126  printf("err&war = %d %d\n", err_, war_);
127  print_nvect("tcp_off = ", tcp_offset_, 6);
128  print_nvect("tap_load= ", tcp_load_, 4);
129  printf("coll_sen= %d\n", collis_sens_);
130  printf("teac_sen= %d\n", teach_sens_);
131  print_nvect("gravity_dir_= ", gravity_dir_, 3);
132 }
133 
134 
135 
137  runing_ = 0;
138  mode_ = 0;
139  cmdnum_ = 0;
140  memset(angle_, 0, sizeof(angle_));
141  memset(pose_, 0, sizeof(pose_));
142  memset(tau_, 0, sizeof(tau_));
143 
144  mt_brake_ = 0;
145  mt_able_ = 0;
146  err_ = 0;
147  war_ = 0;
148  memset(tcp_offset_, 0, sizeof(tcp_offset_));
149  memset(tcp_load_, 0, sizeof(tcp_load_));
150  collis_sens_ = 0;
151  teach_sens_ = 0;
152 
153  total_num_ = 0;
154 }
155 
157 
158 int ReportDataRich::flush_data(unsigned char *rx_data) {
159  unsigned char *data_fp = &rx_data[4];
160  int sizeof_data = bin8_to_32(rx_data);
161  if (sizeof_data < 233) {
162  printf("sizeof_data = %d\n", sizeof_data);
163  return -1;
164  }
165 
166  total_num_ = bin8_to_32(data_fp);
167  if (total_num_ != 233) { return -2; }
168 
169  runing_ = data_fp[4] & 0x0F;
170  mode_ = data_fp[4] >> 4;
171  cmdnum_ = bin8_to_16(&data_fp[5]);
172  hex_to_nfp32(&data_fp[7], angle_, 7);
173  hex_to_nfp32(&data_fp[35], pose_, 6);
174  hex_to_nfp32(&data_fp[59], tau_, 7);
175 
176  mt_brake_ = data_fp[87];
177  mt_able_ = data_fp[88];
178  err_ = data_fp[89];
179  war_ = data_fp[90];
180  hex_to_nfp32(&data_fp[91], tcp_offset_, 6);
181  hex_to_nfp32(&data_fp[115], tcp_load_, 4);
182  collis_sens_ = data_fp[131];
183  teach_sens_ = data_fp[132];
184  hex_to_nfp32(&data_fp[133], gravity_dir_, 3);
185 
186  arm_type_ = data_fp[145];
187  axis_num_ = data_fp[146];
188  master_id_ = data_fp[147];
189  slave_id_ = data_fp[148];
190  motor_tid_ = data_fp[149];
191  motor_fid_ = data_fp[150];
192  memcpy(versions_, &data_fp[151], 30);
193 
194  hex_to_nfp32(&data_fp[181], trs_msg_, 5);
195  trs_jerk_ = trs_msg_[0];
196  trs_accmin_ = trs_msg_[1];
197  trs_accmax_ = trs_msg_[2];
198  trs_velomin_ = trs_msg_[3];
199  trs_velomax_ = trs_msg_[4];
200 
201  hex_to_nfp32(&data_fp[201], p2p_msg_, 5);
202  p2p_jerk_ = p2p_msg_[0];
203  p2p_accmin_ = p2p_msg_[1];
204  p2p_accmax_ = p2p_msg_[2];
205  p2p_velomin_ = p2p_msg_[3];
206  p2p_velomax_ = p2p_msg_[4];
207 
208  hex_to_nfp32(&data_fp[221], rot_msg_, 2);
209  rot_jerk_ = rot_msg_[0];
210  rot_accmax_ = rot_msg_[1];
211 
212  for (int i = 0; i < 17; i++) { sv3msg_[i] = data_fp[229 + i]; }
213 
214  return 0;
215 }
216 
218  printf("versions= %s\n", versions_);
219  printf("total = %d\n", total_num_);
220  printf("runing = %d\n", runing_);
221  printf("mode = %d\n", mode_);
222  printf("cmdnum = %d\n", cmdnum_);
223  print_nvect("angle = ", angle_, 7);
224  print_nvect("pose = ", pose_, 6);
225  print_nvect("tau = ", tau_, 7);
226 
227  printf("mode = %d\n", mode_);
228  printf("mt_brake= %x\n", mt_brake_);
229  printf("mt_able = %x\n", mt_able_);
230  printf("err&war = %d %d\n", err_, war_);
231  print_nvect("tcp_off = ", tcp_offset_, 6);
232  print_nvect("tap_load= ", tcp_load_, 4);
233  printf("coll_sen= %d\n", collis_sens_);
234  printf("teac_sen= %d\n", teach_sens_);
235  print_nvect("gravity_dir_= ", gravity_dir_, 3);
236 
237  printf("xarm_type = %d(axis%d)\n", arm_type_, axis_num_);
238  printf("xarm_msid = 0x%X 0x%X\n", master_id_, slave_id_);
239  printf("motor_tfid = 0x%X 0x%X\n", motor_tid_, motor_fid_);
240 
241  print_nvect("trs_msg = ", trs_msg_, 5);
242  print_nvect("p2p_msg = ", p2p_msg_, 5);
243  print_nvect("ros_msg = ", rot_msg_, 2);
244 
245  printf("ID 执行状态 错误代码\n");
246  for (int i = 0; i < 8; i++) {
247  printf("%d %d 0x%X\n", i + 1, sv3msg_[i * 2],
248  sv3msg_[i * 2 + 1]);
249  }
250 }
251 
252 
253 
254 XArmReportData::XArmReportData(std::string report_type_)
255 {
256  report_type = report_type_;
257  total_num = 0;
258  // common report data
259  state = 4;
260  mode = 0;
261  cmdnum = 0;
262  memset(angle, 0, sizeof(angle));
263  memset(pose, 0, sizeof(pose));
264  memset(tau, 0, sizeof(tau));
265 
266  // normal/rich report data
267  mt_brake = 0;
268  mt_able = 0;
269  err = 0;
270  war = 0;
271  memset(tcp_offset, 0, sizeof(tcp_offset));
272  memset(tcp_load, 0, sizeof(tcp_load));
273  collis_sens = 0;
274  teach_sens = 0;
275  memset(gravity_dir, 0, sizeof(gravity_dir));
276 
277  // rich report data
278  arm_type = 0;
279  axis_num = 0;
280  master_id = 0;
281  slave_id = 0;
282  motor_tid = 0;
283  motor_fid = 0;
284  memset(versions, 0, sizeof(versions));
285  trs_jerk = 0;
286  trs_accmin = 0;
287  trs_accmax = 0;
288  trs_velomin = 0;
289  trs_velomax = 0;
290  p2p_jerk = 0;
291  p2p_accmin = 0;
292  p2p_accmax = 0;
293  p2p_velomin = 0;
294  p2p_velomax = 0;
295  rot_jerk = 0;
296  rot_accmax = 0;
297  memset(sv3msg_, 0, sizeof(sv3msg_));
298  memset(trs_msg_, 0, sizeof(trs_msg_));
299  memset(p2p_msg_, 0, sizeof(p2p_msg_));
300  memset(rot_msg_, 0, sizeof(rot_msg_));
301 
302  memset(temperatures, 0, sizeof(temperatures));
303  rt_tcp_spd = 0;
304  memset(rt_joint_spds, 0, sizeof(rt_joint_spds));
305  count = 0;
306  memset(world_offset, 0, sizeof(world_offset));
307  memset(gpio_reset_conf, 0, sizeof(gpio_reset_conf));
308  simulation_mode = 0;
309  collision_detection = 0;
310  collision_tool_type = 0;
311  memset(collision_model_params, 0, sizeof(collision_model_params));
312  memset(voltages, 0, sizeof(voltages));
313  memset(currents, 0, sizeof(currents));
314 
315  cgpio_state = 0;
316  cgpio_code = 0;
317  memset(cgpio_input_digitals, 0, sizeof(cgpio_input_digitals));
318  memset(cgpio_output_digitals, 0, sizeof(cgpio_output_digitals));
319  memset(cgpio_input_analogs, 0, sizeof(cgpio_input_analogs));
320  memset(cgpio_output_analogs, 0, sizeof(cgpio_output_analogs));
321  memset(cgpio_input_conf, 0, sizeof(cgpio_input_conf));
322  memset(cgpio_output_conf, 0, sizeof(cgpio_output_conf));
323 }
324 
326 
327 int XArmReportData::__flush_common_data(unsigned char *rx_data)
328 {
329  int sizeof_data = bin8_to_32(rx_data);
330  if (sizeof_data < 87) {
331  return -2;
332  }
333  data_fp = &rx_data[4];
334  total_num = bin8_to_32(data_fp);
335 
336  if (total_num < 87) return -1;
337  state = data_fp[4] & 0x0F;
338  mode = data_fp[4] >> 4;
339  cmdnum = bin8_to_16(&data_fp[5]);
340  hex_to_nfp32(&data_fp[7], angle, 7);
341  hex_to_nfp32(&data_fp[35], pose, 6);
342  hex_to_nfp32(&data_fp[59], tau, 7);
343  return 0;
344 }
346 {
347  printf("total = %d\n", total_num);
348  printf("state = %d, mode = %d, cmdnum = %d\n", state, mode, cmdnum);
349  print_nvect("pose = ", pose, 6);
350  print_nvect("angle = ", angle, 7);
351  print_nvect("tau = ", tau, 7);
352 }
353 
354 int XArmReportData::_flush_dev_data(unsigned char *rx_data) {
355  int ret = __flush_common_data(rx_data);
356  return ret;
357 }
359 {
360  __print_common_data();
361 }
362 
363 int XArmReportData::_flush_normal_data(unsigned char *rx_data)
364 {
365  int ret = __flush_common_data(rx_data);
366  if (total_num < 133 || ret != 0) return -1;
367  mt_brake = data_fp[87];
368  mt_able = data_fp[88];
369  err = data_fp[89];
370  war = data_fp[90];
371  hex_to_nfp32(&data_fp[91], tcp_offset, 6);
372  hex_to_nfp32(&data_fp[115], tcp_load, 4);
373  collis_sens = data_fp[131];
374  teach_sens = data_fp[132];
375  hex_to_nfp32(&data_fp[133], gravity_dir, 3);
376  return ret;
377 }
379 {
380  __print_common_data();
381  printf("mt_brake = 0x%X, mt_able = 0x%X\n", mt_brake, mt_able);
382  printf("error = %d, warn = %d\n", err, war);
383  printf("coll_sen = %d, teach_sen = %d\n", collis_sens, teach_sens);
384  print_nvect("tcp_load = ", tcp_load, 4);
385  print_nvect("tcp_offset = ", tcp_offset, 6);
386  print_nvect("gravity_dir= ", gravity_dir, 3);
387 }
388 
389 int XArmReportData::_flush_rich_data(unsigned char *rx_data)
390 {
391  int ret = _flush_normal_data(rx_data);
392  if (total_num < 245 || ret != 0) return -1;
393  arm_type = data_fp[145];
394  axis_num = data_fp[146];
395  master_id = data_fp[147];
396  slave_id = data_fp[148];
397  motor_tid = data_fp[149];
398  motor_fid = data_fp[150];
399  memcpy(versions, &data_fp[151], 30);
400 
401  hex_to_nfp32(&data_fp[181], trs_msg_, 5);
402  trs_jerk = trs_msg_[0];
403  trs_accmin = trs_msg_[1];
404  trs_accmax = trs_msg_[2];
405  trs_velomin = trs_msg_[3];
406  trs_velomax = trs_msg_[4];
407 
408  hex_to_nfp32(&data_fp[201], p2p_msg_, 5);
409  p2p_jerk = p2p_msg_[0];
410  p2p_accmin = p2p_msg_[1];
411  p2p_accmax = p2p_msg_[2];
412  p2p_velomin = p2p_msg_[3];
413  p2p_velomax = p2p_msg_[4];
414 
415  hex_to_nfp32(&data_fp[221], rot_msg_, 2);
416  rot_jerk = rot_msg_[0];
417  rot_accmax = rot_msg_[1];
418 
419  for (int i = 0; i < 17; i++) { sv3msg_[i] = data_fp[229 + i]; }
420 
421  if (total_num >= 252) {
422  for (int i = 0; i < 17; i++) { temperatures[i] = data_fp[245 + i]; }
423  }
424  if (total_num >= 284) {
425  float tcp_spd[1];
426  hex_to_nfp32(&data_fp[252], tcp_spd, 1);
427  rt_tcp_spd = tcp_spd[0];
428  hex_to_nfp32(&data_fp[256], rt_joint_spds, 7);
429  }
430  if (total_num >= 288) {
431  count = bin8_to_32(&data_fp[284]);
432  }
433  if (total_num >= 312) {
434  hex_to_nfp32(&data_fp[288], world_offset, 6);
435  }
436  if (total_num >= 314) {
437  gpio_reset_conf[0] = data_fp[312];
438  gpio_reset_conf[1] = data_fp[313];
439  }
440  if (total_num >= 417) {
441  simulation_mode = data_fp[314];
442  collision_detection = data_fp[315];
443  collision_tool_type = data_fp[316];
444  hex_to_nfp32(&data_fp[317], collision_model_params, 6);
445  for (int i = 0; i < 7; i++) { voltages[i] = (float)bin8_to_16(&data_fp[341 + 2 * i]) / 100; }
446  hex_to_nfp32(&data_fp[355], currents, 7);
447 
448  cgpio_state = data_fp[383];
449  cgpio_code = data_fp[384];
450  cgpio_input_digitals[0] = bin8_to_16(&data_fp[385]);
451  cgpio_input_digitals[1] = bin8_to_16(&data_fp[387]);
452  cgpio_output_digitals[0] = bin8_to_16(&data_fp[389]);
453  cgpio_output_digitals[1] = bin8_to_16(&data_fp[391]);
454  cgpio_input_analogs[0] = (float)(bin8_to_16(&data_fp[393])) / 4095 * 10;
455  cgpio_input_analogs[1] = (float)(bin8_to_16(&data_fp[395])) / 4095 * 10;
456  cgpio_output_analogs[0] = (float)(bin8_to_16(&data_fp[397])) / 4095 * 10;
457  cgpio_output_analogs[1] = (float)(bin8_to_16(&data_fp[399])) / 4095 * 10;
458 
459  for (int i = 0; i < 8; i++) {
460  cgpio_input_conf[i] = data_fp[401 + i];
461  cgpio_output_conf[i] = data_fp[409 + i];
462  };
463  if (total_num >= 433) {
464  for (int i = 0; i < 8; i++) {
465  cgpio_input_conf[i+8] = data_fp[417 + i];
466  cgpio_output_conf[i+8] = data_fp[425 + i];
467  };
468  }
469  }
470  return ret;
471 }
473 {
474  _print_normal_data();
475  printf("xarm_axis = %d, xarm_type = %d\n", axis_num, arm_type);
476  printf("master_id = 0x%X, slave_id = 0x%X\n", master_id, slave_id);
477  printf("motor_tid = 0x%X, motor_fid = 0x%X\n", motor_tid, motor_fid);
478 
479  printf("versions = %s\n", versions);
480 
481  print_nvect("trs_msg = ", trs_msg_, 5);
482  print_nvect("p2p_msg = ", p2p_msg_, 5);
483  print_nvect("ros_msg = ", rot_msg_, 2);
484 
485  printf("ID State ErrorCode\n");
486  for (int i = 0; i < 8; i++) {
487  printf("%d %d 0x%X\n", i + 1, sv3msg_[i * 2], sv3msg_[i * 2 + 1]);
488  }
489 
490  if (total_num >= 252) {
491  print_nvect("temperatures: ", temperatures, 7);
492  }
493  if (total_num >= 284) {
494  printf("realtime_tcp_speed: %f\n", rt_tcp_spd);
495  print_nvect("realtime_joint_speed: ", rt_joint_spds, 7);
496  }
497  if (total_num >= 288) {
498  printf("counter_val: %d\n", count);
499  }
500  if (total_num >= 312) {
501  print_nvect("world_offset: ", world_offset, 6);
502  }
503  if (total_num >= 314) {
504  printf("gpio_reset_conf: [ %d, %d ]\n", gpio_reset_conf[0], gpio_reset_conf[1]);
505  }
506  if (total_num >= 417) {
507  printf("simulation_mode: %d\n", simulation_mode);
508  printf("collision_detection: %d\n", collision_detection);
509  printf("collision_tool_type: %d\n", collision_tool_type);
510  print_nvect("collision_model_params: ", collision_model_params, 6);
511  print_nvect("voltages: ", voltages, 7);
512  print_nvect("currents: ", currents, 7);
513 
514  printf("cgpio_state: %d, cgpio_code = %d\n", cgpio_state, cgpio_code);
515  // printf("cgpio_input_digitals: [ %d, %d ]\n", cgpio_input_digitals[0], cgpio_input_digitals[1]);
516  // printf("cgpio_output_digitals: [ %d, %d ]\n", cgpio_output_digitals[0], cgpio_output_digitals[1]);
517  // printf("cgpio_input_analogs: [ %f, %f ]\n", cgpio_input_analogs[0], cgpio_input_analogs[1]);
518  // printf("cgpio_output_analogs: [ %f, %f ]\n", cgpio_output_analogs[0], cgpio_output_analogs[1]);
519  // print_nvect("cgpio_input_conf: ", cgpio_input_conf, total_num >= 433 ? 16 : 8);
520  // print_nvect("cgpio_output_conf: ", cgpio_output_conf, total_num >= 433 ? 16 : 8);
521  printf("CGPIO_INPUT: \n");
522  printf(" [CI] ");
523  for (int i = 0; i < 8; ++i) { printf("CI%d=%d, ", i, (cgpio_input_digitals[1] >> i) & 0x0001); }
524  printf("\n");
525  printf(" [DI] ");
526  for (int i = 8; i < 16; ++i) { printf("DI%d=%d, ", i-8, (cgpio_input_digitals[1] >> i) & 0x0001); }
527  printf("\n");
528  printf(" [AI] AI0=%f, AI1=%f\n", cgpio_input_analogs[0], cgpio_input_analogs[1]);
529  printf("CGPIO_OUTPUT: \n");
530  printf(" [CO] ");
531  for (int i = 0; i < 8; ++i) { printf("CO%d=%d, ", i, (cgpio_output_digitals[1] >> i) & 0x0001); }
532  printf("\n");
533  printf(" [DO] ");
534  for (int i = 8; i < 16; ++i) { printf("DO%d=%d, ", i-8, (cgpio_output_digitals[1] >> i) & 0x0001); }
535  printf("\n");
536 
537  printf(" [AO] AO0=%f, AO1=%f\n", cgpio_output_analogs[0], cgpio_output_analogs[1]);
538  printf("CGPIO_CONF: \n");
539  printf(" [CI] ");
540  for (int i = 0; i < 8; ++i) { printf("CI%d=%d, ", i, cgpio_input_conf[i]); }
541  printf("\n");
542  printf(" [DI] ");
543  for (int i = 8; i < 16; ++i) { printf("DI%d=%d, ", i-8, cgpio_input_conf[i]); }
544  printf("\n");
545  printf(" [CO] ");
546  for (int i = 0; i < 8; ++i) { printf("CO%d=%d, ", i, cgpio_output_conf[i]); }
547  printf("\n");
548  printf(" [DO] ");
549  for (int i = 8; i < 16; ++i) { printf("DO%d=%d, ", i-8, cgpio_output_conf[i]); }
550  printf("\n");
551  }
552 }
553 
554 int XArmReportData::flush_data(unsigned char *rx_data)
555 {
556  if (report_type == "dev") {
557  return _flush_dev_data(rx_data);
558  }
559  else if (report_type == "rich") {
560  return _flush_rich_data(rx_data);
561  }
562  else {
563  return _flush_normal_data(rx_data);
564  }
565 }
566 
568 {
569  if (report_type == "dev") {
570  _print_dev_data();
571  }
572  else if (report_type == "rich") {
573  _print_rich_data();
574  }
575  else {
576  _print_normal_data();
577  }
578 }
void print_data(void)
Definition: report_data.cc:567
void print_data(void)
Definition: report_data.cc:217
ReportDataNorm(void)
Definition: report_data.cc:55
int flush_data(unsigned char *rx_data)
Definition: report_data.cc:76
~ReportDataDevelop(void)
Definition: report_data.cc:23
int flush_data(unsigned char *rx_data)
Definition: report_data.cc:25
void _print_normal_data(void)
Definition: report_data.cc:378
void hex_to_nfp32(unsigned char *datahex, float *dataf, int n)
Definition: data_type.h:93
void _print_dev_data(void)
Definition: report_data.cc:358
int flush_data(unsigned char *rx_data)
Definition: report_data.cc:554
int bin8_to_32(unsigned char *a)
Definition: data_type.h:38
~ReportDataNorm(void)
Definition: report_data.cc:74
XArmReportData(std::string report_type="normal")
Definition: report_data.cc:254
void _print_rich_data(void)
Definition: report_data.cc:472
~ReportDataRich(void)
Definition: report_data.cc:156
int __flush_common_data(unsigned char *rx_data)
Definition: report_data.cc:327
~XArmReportData(void)
Definition: report_data.cc:325
int _flush_normal_data(unsigned char *rx_data)
Definition: report_data.cc:363
int _flush_dev_data(unsigned char *rx_data)
Definition: report_data.cc:354
int flush_data(unsigned char *rx_data)
Definition: report_data.cc:158
int _flush_rich_data(unsigned char *rx_data)
Definition: report_data.cc:389
void print_data(void)
Definition: report_data.cc:43
ReportDataRich(void)
Definition: report_data.cc:136
void print_data(void)
Definition: report_data.cc:113
void print_nvect(const char *str, double vect[], int n)
Definition: debug_print.cc:26
void __print_common_data(void)
Definition: report_data.cc:345
int bin8_to_16(unsigned char *a)
Definition: data_type.h:42


xarm_api
Author(s):
autogenerated on Sat May 8 2021 02:51:23