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);