00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 #include <labust/navigation/DVLdataClass.h>
00035 #include <labust/navigation/NavQuestMessages.hpp>
00036 using namespace labust::navigation;
00037 
00038 
00039 DVLdataClass::DVLdataClass(void){};
00040 
00041 DVLdataClass::~DVLdataClass(void){};
00042 
00043 void DVLdataClass::parsDVL(const std::string& str)
00044 {
00045         
00046         std::string sname, sname1;
00047         int index = 0;
00048 
00049         sname = str;
00050 
00051         if (!(str.compare(0, 8, "$#NQ.RES")))
00052         {
00053                 
00054                 std::stringstream converter;
00055                 index = sname.find(" ");
00056                 Header = sname.substr(0, index); 
00057                 
00058                 sname = sname.substr(index + 1);
00059                 index = sname.find(" ");
00060 
00061                 sname = sname.substr(index + 1);
00062                 index = sname.find(" ");
00063                 sname1 = sname.substr(0, index);
00064                 converter << sname1;
00065                 converter >> Beam1Valid;
00066                 converter.clear();
00067 
00068                 sname = sname.substr(index + 1);
00069                 index = sname.find(" ");
00070                 sname1 = sname.substr(0, index);
00071                 converter << sname1;
00072                 converter >> Beam2Valid;
00073                 converter.clear();
00074 
00075                 sname = sname.substr(index + 1);
00076                 index = sname.find(" ");
00077                 sname1 = sname.substr(0, index);
00078                 converter << sname1;
00079                 converter >> Beam3Valid;
00080                 converter.clear();
00081 
00082                 sname = sname.substr(index + 1);
00083                 index = sname.find(" ");
00084                 sname1 = sname.substr(0, index);
00085                 converter << sname1;
00086                 converter >> Beam4Valid;
00087                 converter.clear();
00088 
00089                 sname = sname.substr(index + 1);
00090                 index = sname.find(" ");
00091                 sname1 = sname.substr(0, index);
00092                 converter << sname1;
00093                 converter >> Altitude1;
00094                 converter.clear();
00095 
00096                 sname = sname.substr(index + 1);
00097                 index = sname.find(" ");
00098                 sname1 = sname.substr(0, index);
00099                 converter << sname1;
00100                 converter >> Altitude2;
00101                 converter.clear();
00102 
00103                 sname = sname.substr(index + 1);
00104                 index = sname.find(" ");
00105                 sname1 = sname.substr(0, index);
00106                 converter << sname1;
00107                 converter >> Altitude3;
00108                 converter.clear();
00109 
00110                 sname = sname.substr(index + 1);
00111                 index = sname.find(" ");
00112                 sname1 = sname.substr(0, index);
00113                 converter << sname1;
00114                 converter >> Altitude4;
00115                 converter.clear();
00116 
00117                 
00118                 
00119                 
00120                 for (int j = 0; j < 13; j++)
00121                 { 
00122                         sname = sname.substr(index + 1);
00123                         index = sname.find(" ");
00124                 }
00125 
00126                 
00127                 sname1 = sname.substr(0, index);
00128                 converter << sname1; 
00129                 converter >> VelocityX;
00130                 converter.clear();
00131 
00132                 sname = sname.substr(index + 1);
00133                 index = sname.find(" ");
00134                 sname1 = sname.substr(0, index);
00135                 converter << sname1;
00136                 converter >> VelocityY; 
00137                 converter.clear();
00138 
00139                 sname = sname.substr(index + 1);
00140                 index = sname.find(" ");
00141                 sname1 = sname.substr(0, index);
00142                 converter << sname1;
00143                 converter >> VelocityZ; 
00144                 converter.clear();
00145 
00146                 sname = sname.substr(index + 1);
00147                 index = sname.find(" ");
00148                 sname1 = sname.substr(0, index);
00149                 if (sname1 == "1")
00150                         VelocityType = "Bottom";
00151                 else
00152                 {
00153                         if (sname1 == "2")
00154                                 VelocityType = "Water";
00155                         else
00156                                 VelocityType = "Invalid";
00157                 }
00158 
00159                 
00160                 sname = sname.substr(index + 1);
00161                 index = sname.find(" ");
00162                 sname1 = sname.substr(0, index);
00163                 converter << sname1;
00164                 converter >> VelocityNorth;
00165                 converter.clear();
00166 
00167                 sname = sname.substr(index + 1);
00168                 index = sname.find(" ");
00169                 sname1 = sname.substr(0, index);
00170                 converter << sname1;
00171                 converter >> VelocityEast;
00172                 converter.clear();
00173 
00174                 sname = sname.substr(index + 1);
00175                 index = sname.find(" ");
00176                 sname1 = sname.substr(0, index);
00177                 converter << sname1;
00178                 converter >> VelocityDown;
00179                 converter.clear();
00180 
00181                 sname = sname.substr(index + 1);
00182                 index = sname.find(" ");
00183                 sname1 = sname.substr(0, index);
00184                 if (sname1 == "1")
00185                         VelocityEarthType = "Bottom";
00186                 else
00187                 {
00188                         if (sname1 == "2")
00189                                 VelocityEarthType = "Water";
00190                         else
00191                                 VelocityEarthType = "Invalid";
00192                 }
00193 
00194                 
00195                 sname = sname.substr(index + 1);
00196                 index = sname.find(" ");
00197                 sname1 = sname.substr(0, index);
00198                 converter << sname1;
00199                 converter >> VelocityCurrentX;
00200                 converter.clear();
00201 
00202                 sname = sname.substr(index + 1);
00203                 index = sname.find(" ");
00204                 sname1 = sname.substr(0, index);
00205                 converter << sname1;
00206                 converter >> VelocityCurrentY;
00207                 converter.clear();
00208 
00209                 sname = sname.substr(index + 1);
00210                 index = sname.find(" ");
00211                 sname1 = sname.substr(0, index);
00212                 converter << sname1;
00213                 converter >> VelocityCurrentZ;
00214                 converter.clear();
00215 
00216                 sname = sname.substr(index + 1);
00217                 index = sname.find(" ");
00218                 sname1 = sname.substr(0, index);
00219                 if (sname1 == "1")
00220                         VelocityCurrentType = "Botom";
00221                 else
00222                 {
00223                         if (sname1 == "2")
00224                                 VelocityCurrentType = "Water";
00225                         else
00226                                 VelocityCurrentType = "Invalid";
00227                 }
00228 
00229                 
00230                 sname = sname.substr(index + 1);
00231                 index = sname.find(" ");
00232                 sname1 = sname.substr(0, index);
00233                 converter << sname1;
00234                 converter >> VelocityCurrentNorth;
00235                 converter.clear();
00236 
00237                 sname = sname.substr(index + 1);
00238                 index = sname.find(" ");
00239                 sname1 = sname.substr(0, index);
00240                 converter << sname1;
00241                 converter >> VelocityCurrentEast;
00242                 converter.clear();
00243 
00244                 sname = sname.substr(index + 1);
00245                 index = sname.find(" ");
00246                 sname1 = sname.substr(0, index);
00247                 converter << sname1;
00248                 converter >> VelocityCurrentDown;
00249                 converter.clear();
00250 
00251                 sname = sname.substr(index + 1);
00252                 index = sname.find(" ");
00253                 sname1 = sname.substr(0, index);
00254                 if (sname1 == "1")
00255                         VelocityCurrentEarthType = "Bottom";
00256                 else
00257                 {
00258                         if (sname1 == "2")
00259                                 VelocityCurrentEarthType = "Water";
00260                         else
00261                                 VelocityCurrentEarthType = "Invalid";
00262                 }
00263 
00264                 sname = sname.substr(index + 1);
00265                 index = sname.find(" ");
00266                 sname1 = sname.substr(0, index);
00267                 converter << sname1;
00268                 converter >> Roll;
00269                 converter.clear();
00270 
00271                 sname = sname.substr(index + 1);
00272                 index = sname.find(" ");
00273                 sname1 = sname.substr(0, index);
00274                 converter << sname1;
00275                 converter >> Pitch;
00276                 converter.clear();
00277 
00278                 sname = sname.substr(index + 1);
00279                 index = sname.find(" ");
00280                 sname1 = sname.substr(0, index);
00281                 converter << sname1;
00282                 converter >> Heading;
00283                 converter.clear();
00284 
00285                 sname = sname.substr(index + 1);
00286                 index = sname.find(" ");
00287                 sname1 = sname.substr(0, index);
00288                 converter << sname1;
00289                 converter >> Altitude;
00290                 converter.clear();
00291 
00292                 sname = sname.substr(index + 1);
00293                 index = sname.find(" ");
00294                 sname1 = sname.substr(0, index);
00295                 converter << sname1;
00296                 converter >> Temperature;
00297                 converter.clear();
00298 
00299                 sname = sname.substr(index + 1);
00300                 index = sname.find(" ");
00301                 sname1 = sname.substr(0, index);
00302                 converter << sname1;
00303                 converter >> Press;
00304                 converter.clear();
00305 
00306                 sname = sname.substr(index + 1);
00307                 index = sname.find(" ");
00308                 sname1 = sname.substr(0, index);
00309                 converter << sname1;
00310                 converter >> Salinity;
00311                 converter.clear();
00312 
00313                 sname = sname.substr(index + 1);
00314                 index = sname.find(" ");
00315                 sname1 = sname.substr(0, index);
00316                 converter << sname1;
00317                 converter >> SoundVelocity;
00318                 converter.clear();
00319 
00320         }
00321 
00322         if (!(str.compare(0, 3, ":SA")))
00323         {
00324                 std::stringstream converter;
00325                 index = sname.find(",");
00326                 sname1 = sname.substr(0, index);
00327                 Header = sname1;
00328 
00329                 sname = sname.substr(index + 1);
00330                 index = sname.find(",");
00331                 sname1 = sname.substr(0, index);
00332                 converter << sname1;
00333                 converter >> Pitch; 
00334                 converter.clear();
00335 
00336                 sname = sname.substr(index + 1);
00337                 index = sname.find(",");
00338                 sname1 = sname.substr(0, index);
00339                 converter << sname1;
00340                 converter >> Roll;
00341                 converter.clear();
00342 
00343                 sname = sname.substr(index + 1);
00344                 converter << sname;
00345                 converter >> Heading;
00346                 converter.clear();
00347         }
00348 
00349         if (!(str.compare(0, 3, ":TS")))
00350         {
00351                 std::stringstream converter;
00352                 index = sname.find(",");
00353                 sname1 = sname.substr(0, index);
00354                 Header = sname1;
00355                 sname = sname.substr(index + 1);
00356 
00357                 
00358                 index = sname.find(",");
00359                 sname = sname.substr(index + 1);
00360                 index = sname.find(",");
00361                 sname = sname.substr(index + 1);
00362 
00363                 index = sname.find(",");
00364                 sname1 = sname.substr(0, index);
00365                 converter << sname1;
00366                 converter >> Temperature;
00367                 converter.clear();
00368 
00369                 sname = sname.substr(index + 1);
00370                 index = sname.find(",");
00371                 sname1 = sname.substr(0, index);
00372                 converter << sname1;
00373                 converter >> Press;
00374                 converter.clear();
00375 
00376                 sname = sname.substr(index + 1);
00377                 converter << sname;
00378                 converter >> SoundVelocity;
00379                 converter.clear();
00380         }
00381 
00382         if (!(str.compare(0, 3, ":WI")))
00383         {
00384                 std::stringstream converter;
00385                 index = sname.find(",");
00386                 sname1 = sname.substr(0, index);
00387                 Header = sname1;
00388                 sname = sname.substr(index + 1);
00389 
00390                 index = sname.find(",");
00391                 sname1 = sname.substr(0, index);
00392                 converter << sname1;
00393                 converter >> VelocityCurrentX;
00394                 converter.clear();
00395 
00396                 sname = sname.substr(index + 1);
00397                 index = sname.find(",");
00398                 sname1 = sname.substr(0, index);
00399                 converter << sname1;
00400                 converter >> VelocityCurrentY;
00401                 converter.clear();
00402 
00403                 sname = sname.substr(index + 1);
00404                 index = sname.find(",");
00405                 sname1 = sname.substr(0, index);
00406                 converter << sname1;
00407                 converter >> VelocityCurrentZ;
00408                 converter.clear();
00409 
00410                 
00411                 index = sname.find(",");
00412                 sname = sname.substr(index + 1);
00413 
00414                 sname = sname.substr(index + 1,1);
00415                 VelocityCurrentType = sname;
00416         }
00417 
00418         if (!(str.compare(0, 3, ":BI")))
00419         {
00420                 std::stringstream converter;
00421                 index = sname.find(",");
00422                 sname1 = sname.substr(0, index);
00423                 Header = sname1;
00424                 sname = sname.substr(index + 1);
00425 
00426                 index = sname.find(",");
00427                 sname1 = sname.substr(0, index);
00428                 converter << sname1;
00429                 converter >> VelocityX;
00430                 converter.clear();
00431 
00432                 sname = sname.substr(index + 1);
00433                 index = sname.find(",");
00434                 sname1 = sname.substr(0, index);
00435                 converter << sname1;
00436                 converter >> VelocityY;
00437 
00438                 converter.clear();
00439 
00440                 sname = sname.substr(index + 1);
00441                 index = sname.find(",");
00442                 sname1 = sname.substr(0, index);
00443                 converter << sname1;
00444                 converter >> VelocityZ;
00445                 converter.clear();
00446 
00447                 
00448                 index = sname.find(",");
00449                 sname = sname.substr(index + 1);
00450 
00451                 sname = sname.substr(index + 1,1);
00452                 VelocityType = sname;
00453         }
00454 
00455         if (!(str.compare(0, 3, ":BD")))
00456         {
00457                 std::stringstream converter;
00458                 index = sname.find(",");
00459                 sname1 = sname.substr(0, index);
00460                 Header = sname1;
00461                 sname = sname.substr(index + 1);
00462                 
00463                 index = sname.find(",");
00464                 sname = sname.substr(index + 1);
00465                 index = sname.find(",");
00466                 sname = sname.substr(index + 1);
00467                 index = sname.find(",");
00468                 sname = sname.substr(index + 1);
00469 
00470                 index = sname.find(",");
00471                 sname1 = sname.substr(0, index);
00472                 converter << sname1;
00473                 converter >> Altitude;
00474                 converter.clear();
00475         }
00476 
00477         
00478 
00479 }