Paso 10: Software código explicación - continuó
//**********GPS LATITUDE DATA SEPERATION***********Serial.println("***************GPS DATA************"); Serial.println("LAT:"+ latitude); //To display the GPS format latitute in ddmm.mmmm String dd, mm1, mm2, mm3; int dotlocation = latitude.indexOf('.'); dd = latitude.substring(dotlocation-4, dotlocation-2); mm1 = latitude.substring(dotlocation-2, dotlocation); mm2 = latitude.substring(dotlocation+1, dotlocation+5); unsigned long D1 = dd.toInt(); //Convert the received string to int unsigned long MM1 = mm1.toInt(); //Convert the received string to int unsigned long MM2 = mm2.toInt(); //Convert the received string to int int setdot; //Used to set the precision if (D1 > 9) setdot = 2; else setdot = 1; Serial.print("DD= "); Serial.println(D1); //Store the dd Serial.print("mm1="); Serial.println(MM1); //Store two mm Serial.print("mm2="); Serial.println(MM2); //Store the remain .mmmm Serial.print("dotlocation = "); Serial.println(dotlocation);
Cuando recibamos una coordenada del GPS, que recibimos en el formato ddmm.mmm. Para facilitar los cálculos futuros, dividimos la información en dd, mm, mmmm. Esta sección del código se encarga de eso. Utilizamos la función "indexOf()" para encontrar la ubicación del punto y dividir los datos en consecuencia. Luego convertimos cada parte a valores unsigned int largo.