mirror of
https://github.com/justcallmekoko/ESP32Marauder.git
synced 2025-12-23 07:29:14 -08:00
De-dumbass myself.
This commit is contained in:
@@ -336,8 +336,8 @@ void CommandLine::runCommand(String input) {
|
|||||||
int notimp_arg = this->argSearch(&cmd_args, "-p");
|
int notimp_arg = this->argSearch(&cmd_args, "-p");
|
||||||
int recd_arg = this->argSearch(&cmd_args, "-r");
|
int recd_arg = this->argSearch(&cmd_args, "-r");
|
||||||
if(notimp_arg == -1 && recd_arg == -1){
|
if(notimp_arg == -1 && recd_arg == -1){
|
||||||
gps_obj.sendSentence(Serial, gps_obj.generateGXgga());
|
gps_obj.sendSentence(Serial, gps_obj.generateGXgga().c_str());
|
||||||
gps_obj.sendSentence(Serial, gps_obj.generateGXrmc());
|
gps_obj.sendSentence(Serial, gps_obj.generateGXrmc().c_str());
|
||||||
}
|
}
|
||||||
else if(notimp_arg == -1)
|
else if(notimp_arg == -1)
|
||||||
Serial.println(gps_obj.getNmea());
|
Serial.println(gps_obj.getNmea());
|
||||||
@@ -355,7 +355,7 @@ void CommandLine::runCommand(String input) {
|
|||||||
else
|
else
|
||||||
Serial.println("You did not provide a valid argument");
|
Serial.println("You did not provide a valid argument");
|
||||||
}
|
}
|
||||||
else if(cmd_args.size()>0)
|
else if(cmd_args.size()>1)
|
||||||
Serial.println("You did not provide a valid flag");
|
Serial.println("You did not provide a valid flag");
|
||||||
else
|
else
|
||||||
Serial.println("You did not provide an argument");
|
Serial.println("You did not provide an argument");
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ void GpsInterface::setType(String t){
|
|||||||
this->type_flag=GPSTYPE_ALL;
|
this->type_flag=GPSTYPE_ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* GpsInterface::generateGXgga(){
|
String GpsInterface::generateGXgga(){
|
||||||
String msg_type="$G";
|
String msg_type="$G";
|
||||||
if(this->type_flag == GPSTYPE_GPS)
|
if(this->type_flag == GPSTYPE_GPS)
|
||||||
msg_type+='P';
|
msg_type+='P';
|
||||||
@@ -120,44 +120,44 @@ const char* GpsInterface::generateGXgga(){
|
|||||||
msg_type+="GGA,";
|
msg_type+="GGA,";
|
||||||
|
|
||||||
char timeStr[8];
|
char timeStr[8];
|
||||||
sprintf(timeStr, "%02d%02d%02d,", (int)(nmea.getHour()), (int)(nmea.getMinute()), (int)(nmea.getSecond()));
|
snprintf(timeStr, 8, "%02d%02d%02d,", (int)(nmea.getHour()), (int)(nmea.getMinute()), (int)(nmea.getSecond()));
|
||||||
|
|
||||||
long lat = nmea.getLatitude();
|
long lat = nmea.getLatitude();
|
||||||
char latDir = lat < 0 ? 'S' : 'N';
|
char latDir = lat < 0 ? 'S' : 'N';
|
||||||
lat = abs(lat);
|
lat = abs(lat);
|
||||||
char latStr[12];
|
char latStr[12];
|
||||||
sprintf(latStr, "%02ld%08.5f,", lat / 1000000, ((lat % 1000000)*60) / 1000000.0);
|
snprintf(latStr, 12, "%02ld%08.5f,", lat / 1000000, ((lat % 1000000)*60) / 1000000.0);
|
||||||
|
|
||||||
long lon = nmea.getLongitude();
|
long lon = nmea.getLongitude();
|
||||||
char lonDir = lon < 0 ? 'W' : 'E';
|
char lonDir = lon < 0 ? 'W' : 'E';
|
||||||
lon = abs(lon);
|
lon = abs(lon);
|
||||||
char lonStr[13];
|
char lonStr[13];
|
||||||
sprintf(lonStr, "%03ld%08.5f,", lon / 1000000, ((lon % 1000000)*60) / 1000000.0);
|
snprintf(lonStr, 13, "%03ld%08.5f,", lon / 1000000, ((lon % 1000000)*60) / 1000000.0);
|
||||||
|
|
||||||
int fixQuality = nmea.isValid() ? 1 : 0;
|
int fixQuality = nmea.isValid() ? 1 : 0;
|
||||||
char fixStr[3];
|
char fixStr[3];
|
||||||
sprintf(fixStr, "%01d,", fixQuality);
|
snprintf(fixStr, 3, "%01d,", fixQuality);
|
||||||
|
|
||||||
int numSatellites = nmea.getNumSatellites();
|
int numSatellites = nmea.getNumSatellites();
|
||||||
char satStr[4];
|
char satStr[4];
|
||||||
sprintf(satStr, "%02d,", numSatellites);
|
snprintf(satStr, 4, "%02d,", numSatellites);
|
||||||
|
|
||||||
unsigned long hdop = nmea.getHDOP();
|
unsigned long hdop = nmea.getHDOP();
|
||||||
char hdopStr[14];
|
char hdopStr[13];
|
||||||
sprintf(hdopStr, "%01.2f,", 2.5 * (((float)(hdop))/10));
|
snprintf(hdopStr, 13, "%01.2f,", 2.5 * (((float)(hdop))/10));
|
||||||
|
|
||||||
long altitude;
|
long altitude;
|
||||||
if(!nmea.getAltitude(altitude)) altitude=0;
|
if(!nmea.getAltitude(altitude)) altitude=0;
|
||||||
char altStr[14];
|
char altStr[9];
|
||||||
sprintf(altStr, "%01.1f,", altitude/1000.0);
|
snprintf(altStr, 9, "%01.1f,", altitude/1000.0);
|
||||||
|
|
||||||
String message = msg_type + timeStr + latStr + latDir + "," + lonStr + lonDir +
|
String message = msg_type + timeStr + latStr + latDir + ',' + lonStr + lonDir +
|
||||||
"," + fixStr + satStr + hdopStr + altStr + "M,,M,,";
|
',' + fixStr + satStr + hdopStr + altStr + "M,,M,,";
|
||||||
|
|
||||||
return message.c_str();
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* GpsInterface::generateGXrmc(){
|
String GpsInterface::generateGXrmc(){
|
||||||
String msg_type="$G";
|
String msg_type="$G";
|
||||||
if(this->type_flag == GPSTYPE_GPS)
|
if(this->type_flag == GPSTYPE_GPS)
|
||||||
msg_type+='P';
|
msg_type+='P';
|
||||||
@@ -170,10 +170,10 @@ const char* GpsInterface::generateGXrmc(){
|
|||||||
msg_type+="RMC,";
|
msg_type+="RMC,";
|
||||||
|
|
||||||
char timeStr[8];
|
char timeStr[8];
|
||||||
sprintf(timeStr, "%02d%02d%02d,", (int)(nmea.getHour()), (int)(nmea.getMinute()), (int)(nmea.getSecond()));
|
snprintf(timeStr, 8, "%02d%02d%02d,", (int)(nmea.getHour()), (int)(nmea.getMinute()), (int)(nmea.getSecond()));
|
||||||
|
|
||||||
char dateStr[8];
|
char dateStr[8];
|
||||||
sprintf(dateStr, "%02d%02d%02d,", (int)(nmea.getDay()), (int)(nmea.getMonth()), (int)(nmea.getYear()%100));
|
snprintf(dateStr, 8, "%02d%02d%02d,", (int)(nmea.getDay()), (int)(nmea.getMonth()), (int)(nmea.getYear()%100));
|
||||||
|
|
||||||
char status = nmea.isValid() ? 'A' : 'V';
|
char status = nmea.isValid() ? 'A' : 'V';
|
||||||
char mode = nmea.isValid() ? 'A' : 'N';
|
char mode = nmea.isValid() ? 'A' : 'N';
|
||||||
@@ -182,23 +182,23 @@ const char* GpsInterface::generateGXrmc(){
|
|||||||
char latDir = lat < 0 ? 'S' : 'N';
|
char latDir = lat < 0 ? 'S' : 'N';
|
||||||
lat = abs(lat);
|
lat = abs(lat);
|
||||||
char latStr[12];
|
char latStr[12];
|
||||||
sprintf(latStr, "%02ld%08.5f,", lat / 1000000, ((lat % 1000000)*60) / 1000000.0);
|
snprintf(latStr, 12, "%02ld%08.5f,", lat / 1000000, ((lat % 1000000)*60) / 1000000.0);
|
||||||
|
|
||||||
long lon = nmea.getLongitude();
|
long lon = nmea.getLongitude();
|
||||||
char lonDir = lon < 0 ? 'W' : 'E';
|
char lonDir = lon < 0 ? 'W' : 'E';
|
||||||
lon = abs(lon);
|
lon = abs(lon);
|
||||||
char lonStr[13];
|
char lonStr[13];
|
||||||
sprintf(lonStr, "%03ld%08.5f,", lon / 1000000, ((lon % 1000000)*60) / 1000000.0);
|
snprintf(lonStr, 13, "%03ld%08.5f,", lon / 1000000, ((lon % 1000000)*60) / 1000000.0);
|
||||||
|
|
||||||
char speedStr[14];
|
char speedStr[8];
|
||||||
sprintf(speedStr, "%01.1f,", nmea.getSpeed() / 1000.0);
|
snprintf(speedStr, 8, "%01.1f,", nmea.getSpeed() / 1000.0);
|
||||||
|
|
||||||
char courseStr[14];
|
char courseStr[7];
|
||||||
sprintf(courseStr, "%01.1f,", nmea.getCourse() / 1000.0);
|
snprintf(courseStr, 7, "%01.1f,", nmea.getCourse() / 1000.0);
|
||||||
|
|
||||||
String message = msg_type + timeStr + status + "," + latStr + latDir + "," +
|
String message = msg_type + timeStr + status + ',' + latStr + latDir + ',' +
|
||||||
lonStr + lonDir + "," + speedStr + courseStr + dateStr + ",," + mode;
|
lonStr + lonDir + ',' + speedStr + courseStr + dateStr + ',' + ',' + mode;
|
||||||
return message.c_str();
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Thanks JosephHewitt
|
// Thanks JosephHewitt
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ class GpsInterface {
|
|||||||
void sendSentence(const char* sentence);
|
void sendSentence(const char* sentence);
|
||||||
void sendSentence(Stream &s, const char* sentence);
|
void sendSentence(Stream &s, const char* sentence);
|
||||||
|
|
||||||
const char* generateGXgga();
|
String generateGXgga();
|
||||||
const char* generateGXrmc();
|
String generateGXrmc();
|
||||||
|
|
||||||
enum type_t {
|
enum type_t {
|
||||||
GPSTYPE_ALL,
|
GPSTYPE_ALL,
|
||||||
|
|||||||
@@ -1123,8 +1123,8 @@ void WiFiScan::RunGPSNmea() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gps_obj.sendSentence(Serial, gps_obj.generateGXgga());
|
gps_obj.sendSentence(Serial, gps_obj.generateGXgga().c_str());
|
||||||
gps_obj.sendSentence(Serial, gps_obj.generateGXrmc());
|
gps_obj.sendSentence(Serial, gps_obj.generateGXrmc().c_str());
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user