# HG changeset patch # User ethanzonca@CL-ENS241-08.cedarville.edu # Date 2013-04-18 21:51:21 # Node ID 84e25f7efd5ada17ec762fc960adf7bd96fae7b1 # Parent 2b32812e173701f2c1d5545a3c3f7b979d5920af Fixed issue where get_latitudeTrimmed() and get_latitudeLSBs() and associated longitude function returned the same results due to buffer sharing and compiler optimization. diff --git a/master/master/lib/gps.c b/master/master/lib/gps.c --- a/master/master/lib/gps.c +++ b/master/master/lib/gps.c @@ -66,34 +66,36 @@ char* get_timestamp() } char latitude[14]; //lllll.lla -char latitudeTmp[8]; +char latitudeTmpTRIM[8]; +char latitudeTmpLSB[4]; char* get_latitudeTrimmed() { - strncpy(latitudeTmp, &latitude[0], 7); - latitudeTmp[7] = 0x00; - return latitudeTmp; + strncpy(latitudeTmpTRIM, &latitude[0], 7); + latitudeTmpTRIM[7] = 0x00; + return latitudeTmpTRIM; } char* get_latitudeLSBs() { - strncpy(latitudeTmp, &latitude[7], 3); - latitudeTmp[3] = 0x00; - return latitudeTmp; + strncpy(latitudeTmpLSB, &latitude[7], 3); + latitudeTmpLSB[3] = 0x00; + return latitudeTmpLSB; } char longitude[14]; //yyyyy.yyb -char longitudeTmp[9]; +char longitudeTmpTRIM[9]; +char longitudeTmpLSB[4]; char* get_longitudeTrimmed() { - strncpy(longitudeTmp, &longitude[0], 8); - longitudeTmp[8] = 0x00; - return longitudeTmp; + strncpy(longitudeTmpTRIM, &longitude[0], 8); + longitudeTmpTRIM[8] = 0x00; + return longitudeTmpTRIM; } char* get_longitudeLSBs() { - strncpy(longitudeTmp, &longitude[8], 3); - longitudeTmp[3] = 0x00; - return longitudeTmp; + strncpy(longitudeTmpLSB, &longitude[8], 3); + longitudeTmpLSB[3] = 0x00; + return longitudeTmpLSB; } char quality; //quality for GGA and validity for RMC