@@ -856,83 +856,68 @@ void UBXLoop(void)
856856#endif // USE_FLOG
857857 const char HTTP_SNS_NTPSERVER[] PROGMEM = " {s} NTP server {m}active{e}" ;
858858
859- const char HTTP_SNS_GPS[] PROGMEM = " {s} GPS latitude {m}%s{e}"
860- " {s} GPS longitude {m}%s{e}"
861- " {s} GPS altitude {m}%s m {e}"
862- " {s} GPS hor. Accuracy {m}%s m {e}"
863- " {s} GPS vert. Accuracy {m}%s m {e}"
864- " {s} GPS sat-fix status {m}%s{e}"
859+ const char HTTP_SNS_GPS[] PROGMEM = " {s}GPS " D_LATITUDE " {m}%s{e}"
860+ " {s}GPS " D_LONGITUDE " {m}%s{e}"
861+ " {s}GPS " D_ALTITUDE " {m}%3_f " D_UNIT_METER " {e}"
862+ " {s}GPS " D_HORIZONTAL_ACCURACY " {m}%3_f " D_UNIT_METER " {e}"
863+ " {s}GPS " D_VERTICAL_ACCURACY " {m}%3_f " D_UNIT_METER " {e}"
864+ " {s}GPS " D_SAT_FIX " {m}%s{e}" ;
865865#ifdef USE_GPS_VELOCITY
866- " {s} GPS Speed {m}%s {e}"
867- " {s} GPS Heading {m}%s {e}"
868- " {s} GPS Heading Acc {m}%s {e}"
869- " {s} GPS Speed Acc {m}%s {e}"
866+ const char HTTP_SNS_GPS2[] PROGMEM = " {s}GPS " D_SPEED " {m}%1_f {e}"
867+ " {s}GPS " D_HEADING " {m}%1_f {e}"
868+ " {s}GPS " D_HEADING_ACCURACY " {m}%2_f {e}"
869+ " {s}GPS " D_SPEED_ACCURACY " {m}%2_f {e}" ;
870870#endif
871- ;
872871
873- const char kGPSFix0 [] PROGMEM = " no fix" ;
874- const char kGPSFix1 [] PROGMEM = " dead reckoning only" ;
875- const char kGPSFix2 [] PROGMEM = " 2D-fix" ;
876- const char kGPSFix3 [] PROGMEM = " 3D-fix" ;
877- const char kGPSFix4 [] PROGMEM = " GPS + dead reckoning combined" ;
878- const char kGPSFix5 [] PROGMEM = " Time only fix" ;
879- const char * kGPSFix [] PROGMEM ={kGPSFix0 , kGPSFix1 , kGPSFix2 , kGPSFix3 , kGPSFix4 , kGPSFix5 };
872+ const char kGPSFix [] PROGMEM = D_SAT_FIX_NO_FIX " |" D_SAT_FIX_DEAD_RECK " |" D_SAT_FIX_2D " |" D_SAT_FIX_3D " |" D_SAT_FIX_GPS_DEAD " |" D_SAT_FIX_TIME;
880873
881874// const char UBX_GOOGLE_MAPS[] ="<iframe width='100%%' src='https://maps.google.com/maps?width=&height=&hl=en&q=%s %s+(Tasmota)&ie=UTF8&t=&z=10&iwloc=B&output=embed' frameborder='0' scrolling='no' marginheight='0' marginwidth='0'></iframe>";
882875
883-
884876#endif // USE_WEBSERVER
885877
886878/* *******************************************************************************************/
887879
888880void UBXShow (bool json)
889881{
890882 char lat[12 ];
891- char lon[12 ];
892- char alt[12 ];
893- char hAcc[12 ];
894- char vAcc[12 ];
895- #ifdef USE_GPS_VELOCITY
896- char spd[12 ];
897- char hdng[12 ];
898- char cAcc[12 ];
899- char sAcc [12 ];
900- #endif
901883 dtostrfd ((double )UBX.rec_buffer .values .lat /10000000 .0f ,7 ,lat);
884+ char lon[12 ];
902885 dtostrfd ((double )UBX.rec_buffer .values .lon /10000000 .0f ,7 ,lon);
903- dtostrfd ((double )UBX.state .last_alt /1000 .0f ,3 ,alt);
904- dtostrfd ((double )UBX.state .last_vAcc /1000 .0f ,3 ,hAcc);
905- dtostrfd ((double )UBX.state .last_hAcc /1000 .0f ,3 ,vAcc);
906- #ifdef USE_GPS_VELOCITY
907- dtostrfd ((double )UBX.Message .navVel .gSpeed /27 .778f ,1 ,spd);
908- dtostrfd ((double )UBX.Message .navVel .heading /100000 .0f ,1 ,hdng);
909- dtostrfd ((double )UBX.Message .navVel .cAcc /100000 .0f ,2 ,cAcc);
910- dtostrfd ((double )UBX.Message .navVel .sAcc /100000 .0f ,2 ,sAcc );
911- #endif
886+ float alt = (float )UBX.state .last_alt / 1000 .0f ;
887+ float hAcc = (float )UBX.state .last_vAcc / 1000 .0f ;
888+ float vAcc = (float )UBX.state .last_hAcc / 1000 .0f ;
889+ char fix[32 ];
890+ GetTextIndexed (fix, sizeof (fix), UBX.state .gpsFix , kGPSFix );
891+ #ifdef USE_GPS_VELOCITY
892+ float spd = (float )UBX.Message .navVel .gSpeed / 27 .778f ;
893+ float hdng = (float )UBX.Message .navVel .heading / 100000 .0f ;
894+ float cAcc = (float )UBX.Message .navVel .cAcc / 100000 .0f ;
895+ float sAcc = (float )UBX.Message .navVel .sAcc / 100000 .0f ;
896+ #endif
912897
913898 if (json) {
914899 ResponseAppend_P (PSTR (" ,\" GPS\" :{" ));
915900 if (UBX.mode .send_UI_only ) {
916901 uint32_t i = UBX.state .log_interval / 10 ;
917- ResponseAppend_P (PSTR (" \" fil \" :%u,\" int \" :%u}" ), UBX.mode .filter_noise , i);
902+ ResponseAppend_P (PSTR (" \" Fil \" :%u,\" Int \" :%u}" ), UBX.mode .filter_noise , i);
918903 } else {
919- ResponseAppend_P (PSTR (" \" lat\" :%s,\" lon\" :%s,\" alt\" :%s,\" hAcc\" :%s,\" vAcc\" :%s,\" fix\" :\" %s\" " ), lat, lon, alt, hAcc, vAcc, kGPSFix [UBX.state .gpsFix ]);
904+ ResponseAppend_P (PSTR (" \" Lat\" :%s,\" Lon\" :%s,\" Alt\" :%3_f,\" hAcc\" :%3_f,\" vAcc\" :%3_f,\" Fix\" :\" %s\" " ),
905+ lat, lon, &alt, &hAcc, &vAcc, fix);
920906#ifdef USE_GPS_VELOCITY
921- ResponseAppend_P (PSTR (,\" spd\" :%s,\" hdng\" :%s,\" cAcc\" :%s,\" sAcc\" :%s" ), spd, hdng, cAcc, sAcc );
907+ ResponseAppend_P (PSTR (" ,\" Spd\" :%1_f,\" Hdng\" :%1_f,\" cAcc\" :%2_f,\" sAcc\" :%2_f" ),
908+ &spd, &hdng, &cAcc, &sAcc );
922909#endif
923910 ResponseAppend_P (PSTR (" }" ));
924911 }
925912#ifdef USE_FLOG
926- ResponseAppend_P (PSTR (" ,\" FLOG\" :{\" rec \" :%u,\" mode \" :%u,\" sec \" :%u}" ), Flog->recording , Flog->mode , Flog->sectors_left );
913+ ResponseAppend_P (PSTR (" ,\" FLOG\" :{\" Rec \" :%u,\" Mode \" :%u,\" Sec \" :%u}" ), Flog->recording , Flog->mode , Flog->sectors_left );
927914#endif // USE_FLOG
928915 UBX.mode .send_UI_only = false ;
929916#ifdef USE_WEBSERVER
930917 } else {
918+ WSContentSend_PD (HTTP_SNS_GPS, lat, lon, &alt, &hAcc, &vAcc, fix);
931919#ifdef USE_GPS_VELOCITY
932- WSContentSend_PD (HTTP_SNS_GPS, lat, lon, alt, hAcc, vAcc, kGPSFix [UBX.state .gpsFix ], spd, hdng, cAcc, sAcc );
933- #endif
934- #ifndef USE_GPS_VELOCITY
935- WSContentSend_PD (HTTP_SNS_GPS, lat, lon, alt, hAcc, vAcc, kGPSFix [UBX.state .gpsFix ]);
920+ WSContentSend_PD (HTTP_SNS_GPS2, &spd, &hdng, &cAcc, &sAcc );
936921#endif
937922 // WSContentSend_P(UBX_GOOGLE_MAPS, lat, lon);
938923#ifdef DEBUG_TASMOTA_SENSOR
0 commit comments