248 std::vector<char>::iterator rsp_beg,
249 std::vector<char>::iterator &rsp_end, std::string &rx_payload)
254 auto it = std::search(rsp_beg, end,
r_term.begin(),
r_term.end());
256 rsp_end = it +
r_term.size();
261 auto curs_b = std::find(rsp_beg, rsp_end,
',') + 1;
265 auto curs_e = std::find(curs_b, rsp_end,
',');
271 std::string ch = std::string(curs_b, curs_e);
276 curs_e = std::find(curs_b, rsp_end,
',');
282 int len = std::stoi(std::string(curs_b, curs_e));
288 curs_e = std::find(curs_b, rsp_end,
',');
292 int sour_a = std::stoi(std::string(curs_b, curs_e));
298 curs_e = std::find(curs_b, rsp_end,
',');
302 int dest_a = std::stoi(std::string(curs_b, curs_e));
308 curs_e = std::find(curs_b, rsp_end,
',');
312 std::string ack = std::string(curs_b, curs_e);
318 curs_e = std::find(curs_b, rsp_end,
',');
322 int dur = std::stoi(std::string(curs_b, curs_e));
328 curs_e = std::find(curs_b, rsp_end,
',');
332 int rssi = std::stoi(std::string(curs_b, curs_e));
338 curs_e = std::find(curs_b, rsp_end,
',');
342 int integrity = std::stoi(std::string(curs_b, curs_e));
348 curs_e = std::find(curs_b, rsp_end,
',');
352 std::istringstream velocity_ss(std::string(curs_b, curs_e));
354 velocity_ss >> velocity;
356 auto payload_beg = std::find(curs_e, rsp_end,
',') + 1;
357 if (payload_beg >= end) {
360 rsp_end = payload_beg + len;
363 std::search(rsp_end, end,
r_term.begin(),
r_term.end());
364 if (rsp_end != term_beg) {
368 rx_payload = std::string(payload_beg, rsp_end -
r_term.size());
373 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
375 rsp_end = it +
r_term.size();
380 auto curs_b = std::find(rsp_beg, rsp_end,
',') + 1;
384 auto curs_e = std::find(curs_b, rsp_end,
',');
390 std::string ch = std::string(curs_b, curs_e);
395 curs_e = std::find(curs_b, rsp_end,
',');
401 int len = std::stoi(std::string(curs_b, curs_e));
407 curs_e = std::find(curs_b, rsp_end,
',');
411 int sour_a = std::stoi(std::string(curs_b, curs_e));
417 curs_e = std::find(curs_b, rsp_end,
',');
421 int dest_a = std::stoi(std::string(curs_b, curs_e));
427 curs_e = std::find(curs_b, rsp_end,
',');
431 int bitrate = std::stoi(std::string(curs_b, curs_e));
437 curs_e = std::find(curs_b, rsp_end,
',');
441 int rssi = std::stoi(std::string(curs_b, curs_e));
447 curs_e = std::find(curs_b, rsp_end,
',');
451 int integrity = std::stoi(std::string(curs_b, curs_e));
457 curs_e = std::find(curs_b, rsp_end,
',');
461 int delay = std::stoi(std::string(curs_b, curs_e));
467 curs_e = std::find(curs_b, rsp_end,
',');
471 std::istringstream velocity_ss(std::string(curs_b, curs_e));
473 velocity_ss >> velocity;
475 auto payload_beg = std::find(curs_e, rsp_end,
',') + 1;
476 if (payload_beg >= end) {
479 rsp_end = payload_beg + len;
481 std::search(rsp_end, end,
r_term.begin(),
r_term.end());
482 if (rsp_end != term_beg) {
486 rx_payload = std::string(payload_beg, rsp_end -
r_term.size());
491 auto it = std::search(rsp_beg, end,
r_term.begin(),
r_term.end());
493 rsp_end = it +
r_term.size();
501 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
503 rsp_end = it +
r_term.size();
511 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
513 rsp_end = it +
r_term.size();
521 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
523 rsp_end = it +
r_term.size();
528 auto curs_b = std::find(rsp_beg, rsp_end,
':') + 2;
531 auto curs_e = std::find(curs_b, rsp_end,
'\n');
534 int sl_ = std::stoi(std::string(curs_b, curs_e));
537 curs_b = std::find(curs_b, rsp_end,
':') + 2;
540 curs_e = std::find(curs_b, rsp_end,
'\n');
543 int sl_control = std::stoi(std::string(curs_b, curs_e));
546 curs_b = std::find(curs_b, rsp_end,
':') + 2;
549 curs_e = std::find(curs_b, rsp_end,
'\n');
552 int gain = std::stoi(std::string(curs_b, curs_e));
555 curs_b = std::find(curs_b, rsp_end,
':') + 2;
558 curs_e = std::find(curs_b, rsp_end,
'\n');
561 int cwID = std::stoi(std::string(curs_b, curs_e));
564 curs_b = std::find(curs_b, rsp_end,
':') + 2;
567 curs_e = std::find(curs_b, rsp_end,
'\n');
570 int loc_addr = std::stoi(std::string(curs_b, curs_e));
573 curs_b = std::find(curs_b, rsp_end,
':') + 2;
576 curs_e = std::find(curs_b, rsp_end,
'\n');
579 int loc_addr_MAX = std::stoi(std::string(curs_b, curs_e));
582 curs_b = std::find(curs_b, rsp_end,
':') + 2;
585 curs_e = std::find(curs_b, rsp_end,
'\n');
588 int cluster_size = std::stoi(std::string(curs_b, curs_e));
591 curs_b = std::find(curs_b, rsp_end,
':') + 2;
594 curs_e = std::find(curs_b, rsp_end,
'\n');
597 int pck_time = std::stoi(std::string(curs_b, curs_e));
600 curs_b = std::find(curs_b, rsp_end,
':') + 2;
603 curs_e = std::find(curs_b, rsp_end,
'\n');
606 int retry_count = std::stoi(std::string(curs_b, curs_e));
609 curs_b = std::find(curs_b, rsp_end,
':') + 2;
612 curs_e = std::find(curs_b, rsp_end,
'\n');
615 int retry_to = std::stoi(std::string(curs_b, curs_e));
618 curs_b = std::find(curs_b, rsp_end,
':') + 2;
621 curs_e = std::find(curs_b, rsp_end,
'\n');
624 int wa_time = std::stoi(std::string(curs_b, curs_e));
627 curs_b = std::find(curs_b, rsp_end,
':') + 2;
630 curs_e = std::find(curs_b, rsp_end,
'\n');
633 int wa_period = std::stoi(std::string(curs_b, curs_e));
636 curs_b = std::find(curs_b, rsp_end,
':') + 2;
639 curs_e = std::find(curs_b, rsp_end,
'\n');
642 int promiscous = std::stoi(std::string(curs_b, curs_e));
645 curs_b = std::find(curs_b, rsp_end,
':') + 2;
648 curs_e = std::find(curs_b, rsp_end,
'\n');
651 int sound_speed = std::stoi(std::string(curs_b, curs_e));
654 curs_b = std::find(curs_b, rsp_end,
':') + 2;
657 curs_e = std::find(curs_b, rsp_end,
'\n');
660 int im_retry_count = std::stoi(std::string(curs_b, curs_e));
663 curs_b = std::find(curs_b, rsp_end,
':') + 2;
666 curs_e = std::find(curs_b, rsp_end,
'\n');
669 std::string pool_size = std::string(curs_b, curs_e);
672 curs_b = std::find(curs_b, rsp_end,
':') + 2;
675 curs_e = std::find(curs_b, rsp_end,
'\n');
678 int hold_to = std::stoi(std::string(curs_b, curs_e));
681 curs_b = std::find(curs_b, rsp_end,
':') + 2;
684 curs_e = std::find(curs_b, rsp_end,
'\n');
687 int idle_to = std::stoi(std::string(curs_b, curs_e));
693 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
695 rsp_end = it +
r_term.size();
703 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
705 rsp_end = it +
r_term.size();
713 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
715 rsp_end = it +
r_term.size();
723 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
725 rsp_end = it +
r_term.size();
733 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
735 rsp_end = it +
r_term.size();
743 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
745 rsp_end = it +
r_term.size();
753 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
755 rsp_end = it +
r_term.size();
763 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
765 rsp_end = it +
r_term.size();
773 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
775 rsp_end = it +
r_term.size();
783 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
785 rsp_end = it +
r_term.size();
793 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
795 rsp_end = it +
r_term.size();
803 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
805 rsp_end = it +
r_term.size();
813 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
815 rsp_end = it +
r_term.size();
823 auto it = search(rsp_beg, end,
r_term.begin(),
r_term.end());
825 rsp_end = it +
r_term.size();
830 auto curs_b = std::find(rsp_beg, rsp_end,
':') + 2;
833 auto curs_e = std::find(curs_b, rsp_end,
'\n');
836 int loc_addr = std::stoi(std::string(curs_b, curs_e));
839 curs_b = std::find(curs_b, rsp_end,
':') + 2;
842 curs_e = std::find(curs_b, rsp_end,
'\n');
845 int rem_addr = std::stoi(std::string(curs_b, curs_e));
848 curs_b = std::find(curs_b, rsp_end,
':') + 2;
851 curs_e = std::find(curs_b, rsp_end,
'\n');
854 std::string ac_status = std::string(curs_b, curs_e);
857 curs_b = std::find(curs_b, rsp_end,
':') + 2;
860 curs_e = std::find(curs_b, rsp_end,
' ');
861 int n_pck = std::stoi(std::string(curs_b, curs_e));
864 curs_b = std::find(curs_b, rsp_end,
':') + 2;
867 curs_e = std::find(curs_b, rsp_end,
' ');
868 int bytes_free = std::stoi(std::string(curs_b, curs_e));
871 curs_b = std::find(curs_b, rsp_end,
':') + 2;
874 curs_e = std::find(curs_b, rsp_end,
'\n');
875 bool is_promiscous = (std::string(curs_b, curs_e) ==
"ON");
882 std::stringstream ss;
883 auto it = std::search(rsp_beg, end,
r_term.begin(),
r_term.end());
885 rsp_end = it +
r_term.size();
890 auto curs_b = std::find(rsp_beg, rsp_end,
',') + 1;
894 auto curs_e = std::find(curs_b, rsp_end,
',');
899 std::string c_time = std::string(curs_b, curs_e);
905 curs_e = std::find(curs_b, rsp_end,
',');
909 std::string m_time = std::string(curs_b, curs_e);
915 curs_e = std::find(curs_b, rsp_end,
',');
919 int r_addr = stoi(std::string(curs_b, curs_e));
925 curs_e = std::find(curs_b, rsp_end,
',');
929 std::string l_bearing_s = std::string(curs_b, curs_e);
939 curs_e = std::find(curs_b, rsp_end,
',');
943 std::string l_elevation_s = std::string(curs_b, curs_e);
953 curs_e = std::find(curs_b, rsp_end,
',');
957 std::string bearing_s = std::string(curs_b, curs_e);
967 curs_e = std::find(curs_b, rsp_end,
',');
971 std::string elevation_s = std::string(curs_b, curs_e);
981 curs_e = std::find(curs_b, rsp_end,
',');
985 std::string roll_s = std::string(curs_b, curs_e);
995 curs_e = std::find(curs_b, rsp_end,
',');
999 std::string pitch_s = std::string(curs_b, curs_e);
1005 curs_b = curs_e + 1;
1006 if (curs_b >= end) {
1009 curs_e = std::find(curs_b, rsp_end,
',');
1010 if (curs_e >= end) {
1013 std::string yaw_s = std::string(curs_b, curs_e);
1019 curs_b = curs_e + 1;
1020 if (curs_b >= end) {
1023 curs_e = std::find(curs_b, rsp_end,
',');
1024 if (curs_e >= end) {
1027 int rssi = stoi(std::string(curs_b, curs_e));
1029 curs_b = curs_e + 1;
1030 if (curs_b >= end) {
1033 curs_e = std::find(curs_b, rsp_end,
',');
1034 if (curs_e >= end) {
1037 int integrity = stoi(std::string(curs_b, curs_e));
1039 curs_b = curs_e + 1;
1040 if (curs_b >= end) {
1043 curs_e = std::find(curs_b, rsp_end,
'\n');
1044 if (curs_e >= end) {
1047 std::string accuracy_s = std::string(curs_b, curs_e);
1057 std::stringstream ss;
1058 auto it = std::search(rsp_beg, end,
r_term.begin(),
r_term.end());
1060 rsp_end = it +
r_term.size();
1065 auto curs_b = std::find(rsp_beg, rsp_end,
',') + 1;
1066 if (curs_b >= end) {
1069 auto curs_e = std::find(curs_b, rsp_end,
',');
1070 if (curs_e >= end) {
1074 std::string c_time_s = std::string(curs_b, curs_e);
1080 curs_b = curs_e + 1;
1081 if (curs_b >= end) {
1084 curs_e = std::find(curs_b, rsp_end,
',');
1085 if (curs_e >= end) {
1088 std::string m_time_s = std::string(curs_b, curs_e);
1094 curs_b = curs_e + 1;
1095 if (curs_b >= end) {
1098 curs_e = std::find(curs_b, rsp_end,
',');
1099 if (curs_e >= end) {
1102 int r_addr = stoi(std::string(curs_b, curs_e));
1104 curs_b = curs_e + 1;
1105 if (curs_b >= end) {
1108 curs_e = std::find(curs_b, rsp_end,
',');
1109 if (curs_e >= end) {
1112 std::string X_s = std::string(curs_b, curs_e);
1118 curs_b = curs_e + 1;
1119 if (curs_b >= end) {
1122 curs_e = std::find(curs_b, rsp_end,
',');
1123 if (curs_e >= end) {
1126 std::string Y_s = std::string(curs_b, curs_e);
1132 curs_b = curs_e + 1;
1133 if (curs_b >= end) {
1136 curs_e = std::find(curs_b, rsp_end,
',');
1137 if (curs_e >= end) {
1140 std::string Z_s = std::string(curs_b, curs_e);
1146 curs_b = curs_e + 1;
1147 if (curs_b >= end) {
1150 curs_e = std::find(curs_b, rsp_end,
',');
1151 if (curs_e >= end) {
1154 std::string E_s = std::string(curs_b, curs_e);
1160 curs_b = curs_e + 1;
1161 if (curs_b >= end) {
1164 curs_e = std::find(curs_b, rsp_end,
',');
1165 if (curs_e >= end) {
1168 std::string N_s = std::string(curs_b, curs_e);
1174 curs_b = curs_e + 1;
1175 if (curs_b >= end) {
1178 curs_e = std::find(curs_b, rsp_end,
',');
1179 if (curs_e >= end) {
1182 std::string U_s = std::string(curs_b, curs_e);
1188 curs_b = curs_e + 1;
1189 if (curs_b >= end) {
1192 curs_e = std::find(curs_b, rsp_end,
',');
1193 if (curs_e >= end) {
1196 std::string roll_s = std::string(curs_b, curs_e);
1202 curs_b = curs_e + 1;
1203 if (curs_b >= end) {
1206 curs_e = std::find(curs_b, rsp_end,
',');
1207 if (curs_e >= end) {
1210 std::string pitch_s = std::string(curs_b, curs_e);
1216 curs_b = curs_e + 1;
1217 if (curs_b >= end) {
1220 curs_e = std::find(curs_b, rsp_end,
',');
1221 if (curs_e >= end) {
1224 std::string yaw_s = std::string(curs_b, curs_e);
1230 curs_b = curs_e + 1;
1231 if (curs_b >= end) {
1234 curs_e = std::find(curs_b, rsp_end,
',');
1235 if (curs_e >= end) {
1238 std::string prop_s = std::string(curs_b, curs_e);
1244 curs_b = curs_e + 1;
1245 if (curs_b >= end) {
1248 curs_e = std::find(curs_b, rsp_end,
',');
1249 if (curs_e >= end) {
1252 int rssi = stoi(std::string(curs_b, curs_e));
1254 curs_b = curs_e + 1;
1255 if (curs_b >= end) {
1258 curs_e = std::find(curs_b, rsp_end,
',');
1259 if (curs_e >= end) {
1262 int integrity = stoi(std::string(curs_b, curs_e));
1264 curs_b = curs_e + 1;
1265 if (curs_b >= end) {
1268 curs_e = std::find(curs_b, rsp_end,
'\n');
1269 if (curs_e >= end) {
1272 std::string accuracy_s = std::string(curs_b, curs_e);