kopia lustrzana https://github.com/pjalocha/esp32-ogn-tracker
Merge pull request #49 from lupus78/unit_parameters
Adding parameters for the displayed units on page.master
commit
7a3ea1a2e0
|
@ -227,7 +227,9 @@ void OLED_DrawPosition(u8g2_t *OLED, GPS_Position *GPS=0, uint8_t LineIdx=2)
|
||||||
}
|
}
|
||||||
|
|
||||||
void OLED_DrawGPS(u8g2_t *OLED, GPS_Position *GPS) // GPS time, position, altitude
|
void OLED_DrawGPS(u8g2_t *OLED, GPS_Position *GPS) // GPS time, position, altitude
|
||||||
{ // u8g2_SetFont(OLED, u8g2_font_ncenB14_tr);
|
{ bool isAltitudeUnitMeter = Parameters.AltitudeUnit == 0; // display altitude in meters
|
||||||
|
bool isAltitudeUnitFeet = Parameters.AltitudeUnit == 1; // display altitude in feet
|
||||||
|
// u8g2_SetFont(OLED, u8g2_font_ncenB14_tr);
|
||||||
u8g2_SetFont(OLED, u8g2_font_7x13_tf); // 5 lines, 12 pixels/line
|
u8g2_SetFont(OLED, u8g2_font_7x13_tf); // 5 lines, 12 pixels/line
|
||||||
uint8_t Len=0;
|
uint8_t Len=0;
|
||||||
/*
|
/*
|
||||||
|
@ -276,14 +278,14 @@ void OLED_DrawGPS(u8g2_t *OLED, GPS_Position *GPS) // GPS time, position, altit
|
||||||
if(GPS && GPS->isValid())
|
if(GPS && GPS->isValid())
|
||||||
{ int32_t Alt = GPS->Altitude;
|
{ int32_t Alt = GPS->Altitude;
|
||||||
if(Alt>=0) Line[Len++]=' ';
|
if(Alt>=0) Line[Len++]=' ';
|
||||||
if(GPS->Sec&4) // display altitude in meters
|
if(isAltitudeUnitMeter) // display altitude in meters
|
||||||
{ Len+=Format_SignDec(Line+Len, Alt, 1, 1, 1); // [0.1m/s]
|
{ Len+=Format_SignDec(Line+Len, Alt, 1, 1, 1); // [0.1m]
|
||||||
Line[Len++]='m'; }
|
Line[Len++]='m'; }
|
||||||
else // and alternate in feet
|
else if(isAltitudeUnitFeet) // display altitude in feet
|
||||||
{ Alt = (Alt*336+512)>>10; // [0.1m/s] => [feet]
|
{ Alt = (Alt*336+512)>>10; // [0.1m] => [feet]
|
||||||
Len+=Format_SignDec(Line+Len, Alt, 1, 0, 1); // [feet]
|
Len+=Format_SignDec(Line+Len, Alt, 1, 0, 1); // [feet]
|
||||||
Line[Len++]='f'; Line[Len++]='t'; }
|
Line[Len++]='f'; Line[Len++]='t'; }
|
||||||
// for( ; Len<14; ) Line[Len++]=' '; // tail of spaces to cover older printouts
|
// for( ; Len<14; ) Line[Len++]=' '; // tail of spaces to cover older printouts
|
||||||
}
|
}
|
||||||
else Len+=Format_String(Line+Len, "-----.- ");
|
else Len+=Format_String(Line+Len, "-----.- ");
|
||||||
Line[Len]=0;
|
Line[Len]=0;
|
||||||
|
@ -433,7 +435,13 @@ void OLED_DrawTrafWarn(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
#endif // WITH_LOOKOUT
|
#endif // WITH_LOOKOUT
|
||||||
|
|
||||||
void OLED_DrawBaro(u8g2_t *OLED, GPS_Position *GPS)
|
void OLED_DrawBaro(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
{ u8g2_SetFont(OLED, u8g2_font_7x13_tf); // 5 lines, 12 pixels/line
|
{ bool isAltitudeUnitMeter = Parameters.AltitudeUnit == 0; // display altitude in meters
|
||||||
|
bool isAltitudeUnitFeet = Parameters.AltitudeUnit == 1; // display altitude in feet
|
||||||
|
|
||||||
|
bool isVarioUnitMPS = Parameters.VarioUnit == 0; // display Vario in m/s
|
||||||
|
bool isVarioUnitFPM = Parameters.VarioUnit == 1; // display Vario in fpm
|
||||||
|
|
||||||
|
u8g2_SetFont(OLED, u8g2_font_7x13_tf); // 5 lines, 12 pixels/line
|
||||||
uint8_t Len=0;
|
uint8_t Len=0;
|
||||||
#ifdef WITH_BMP180
|
#ifdef WITH_BMP180
|
||||||
Len+=Format_String(Line+Len, "BMP180 ");
|
Len+=Format_String(Line+Len, "BMP180 ");
|
||||||
|
@ -458,11 +466,22 @@ void OLED_DrawBaro(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
u8g2_DrawStr(OLED, 0, 24, Line);
|
u8g2_DrawStr(OLED, 0, 24, Line);
|
||||||
Len=0;
|
Len=0;
|
||||||
if(GPS && GPS->hasBaro)
|
if(GPS && GPS->hasBaro)
|
||||||
{ Len+=Format_SignDec(Line+Len, GPS->StdAltitude, 5, 1);
|
{ if(isAltitudeUnitMeter)
|
||||||
Len+=Format_String(Line+Len, "m ");
|
{ Len+=Format_SignDec(Line+Len, GPS->StdAltitude, 5, 1);
|
||||||
Len+=Format_SignDec(Line+Len, GPS->ClimbRate, 2, 1);
|
Len+=Format_String(Line+Len, "m "); }
|
||||||
Len+=Format_String(Line+Len, "m/s "); }
|
else if(isAltitudeUnitFeet)
|
||||||
else Len+=Format_String(Line+Len, "-----.-m --.-m/s ");
|
{ Len+=Format_SignDec(Line+Len, (GPS->StdAltitude*336+512)>>10, 5, 0);
|
||||||
|
Len+=Format_String(Line+Len, "ft "); }
|
||||||
|
if(isVarioUnitMPS)
|
||||||
|
{ Len+=Format_SignDec(Line+Len, GPS->ClimbRate, 2, 1);
|
||||||
|
Len+=Format_String(Line+Len, "m/s "); }
|
||||||
|
else if(isVarioUnitFPM)
|
||||||
|
{ Len+=Format_SignDec(Line+Len, (GPS->ClimbRate*5039+128)>>8, 2, 0);
|
||||||
|
Len+=Format_String(Line+Len, "fpm "); } }
|
||||||
|
else
|
||||||
|
{ if(isAltitudeUnitMeter) Len+=Format_String(Line+Len, "-----.-m");
|
||||||
|
else if(isAltitudeUnitFeet) Len+=Format_String(Line+Len, "-----ft ");
|
||||||
|
Len+=Format_String(Line+Len, " --.-m/s "); }
|
||||||
Line[Len]=0;
|
Line[Len]=0;
|
||||||
u8g2_DrawStr(OLED, 0, 36, Line);
|
u8g2_DrawStr(OLED, 0, 36, Line);
|
||||||
Len=0;
|
Len=0;
|
||||||
|
@ -773,13 +792,21 @@ void OLED_DrawID(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
void OLED_DrawAltitudeAndSpeed(u8g2_t *OLED, GPS_Position *GPS)
|
void OLED_DrawAltitudeAndSpeed(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
{ uint8_t Len;
|
{ uint8_t Len;
|
||||||
|
|
||||||
bool inFeet = GPS->Sec&4; // decide if display altitude in meters or in feet
|
bool isAltitudeUnitMeter = Parameters.AltitudeUnit == 0; // display altitude in meters
|
||||||
|
bool isAltitudeUnitFeet = Parameters.AltitudeUnit == 1; // display altitude in feet
|
||||||
|
|
||||||
|
bool isSpeedUnitKMH = Parameters.SpeedUnit == 0; // display Speed in km/h
|
||||||
|
bool isSpeedUnitKnot = Parameters.SpeedUnit == 1; // display Speed in knot
|
||||||
|
|
||||||
|
bool isVarioUnitMPS = Parameters.VarioUnit == 0; // display Vario in m/s
|
||||||
|
bool isVarioUnitFPM = Parameters.VarioUnit == 1; // display Vario in fpm
|
||||||
|
|
||||||
// Standard Pressure Altitude
|
// Standard Pressure Altitude
|
||||||
if(GPS && (GPS->hasBaro || GPS->isValid())) // if GPS has lock or just the pressure data
|
if(GPS && (GPS->hasBaro || GPS->isValid())) // if GPS has lock or just the pressure data
|
||||||
{ int32_t Alt = GPS->Altitude; // [0.1m/s] take GPS (geometrical) altitude
|
{ int32_t Alt = GPS->Altitude; // [0.1m/s] take GPS (geometrical) altitude
|
||||||
if(GPS->hasBaro) Alt = GPS->StdAltitude; // but if pressure sensor is there then replace with pressure altitude
|
if(GPS->hasBaro) Alt = GPS->StdAltitude; // but if pressure sensor is there then replace with pressure altitude
|
||||||
if(inFeet) Alt = (Alt*336+512)>>10; // [0.1m] => [feet] // convert to feet
|
if(isAltitudeUnitMeter) Alt = (Alt+5)/10; // [0.1m] => [m] // or to meters
|
||||||
else Alt = (Alt+5)/10; // [0.1m] => [m] // or to meters
|
else if(isAltitudeUnitFeet) Alt = (Alt*336+512)>>10; // [0.1m] => [feet] // convert to feet
|
||||||
Len=Format_SignDec(Line, Alt, 1, 0, 1); } // print altitude into the string
|
Len=Format_SignDec(Line, Alt, 1, 0, 1); } // print altitude into the string
|
||||||
else
|
else
|
||||||
Len=Format_String(Line, "----"); // if altitude not available then print place holders
|
Len=Format_String(Line, "----"); // if altitude not available then print place holders
|
||||||
|
@ -789,8 +816,8 @@ void OLED_DrawAltitudeAndSpeed(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
u8g2_DrawStr(OLED, 60-Altitude_width, 40, Line); // print the string
|
u8g2_DrawStr(OLED, 60-Altitude_width, 40, Line); // print the string
|
||||||
|
|
||||||
u8g2_SetFont(OLED, u8g2_font_9x15_tr); // smaller font
|
u8g2_SetFont(OLED, u8g2_font_9x15_tr); // smaller font
|
||||||
if(inFeet) u8g2_DrawStr(OLED, 62, 40, "ft"); // print units
|
if(isAltitudeUnitMeter) u8g2_DrawStr(OLED, 64, 40, "m");
|
||||||
else u8g2_DrawStr(OLED, 64, 40, "m");
|
else if(isAltitudeUnitFeet) u8g2_DrawStr(OLED, 62, 40, "ft"); // print units
|
||||||
|
|
||||||
u8g2_SetFont(OLED, u8g2_font_fub17_tr);
|
u8g2_SetFont(OLED, u8g2_font_fub17_tr);
|
||||||
if(GPS && GPS->isValid())
|
if(GPS && GPS->isValid())
|
||||||
|
@ -807,6 +834,7 @@ void OLED_DrawAltitudeAndSpeed(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
|
|
||||||
if(GPS && (GPS->hasBaro || GPS->isValid())) // if GPS has lock or just the pressure data
|
if(GPS && (GPS->hasBaro || GPS->isValid())) // if GPS has lock or just the pressure data
|
||||||
{ int16_t vario_value = GPS->ClimbRate; // [0.1m/s] climb rate
|
{ int16_t vario_value = GPS->ClimbRate; // [0.1m/s] climb rate
|
||||||
|
if(isVarioUnitFPM) vario_value = (vario_value*5039+128)>>8; // [0.1m/s] => [feet per meter]
|
||||||
if(vario_value<0)
|
if(vario_value<0)
|
||||||
{ vario_value=(-vario_value);
|
{ vario_value=(-vario_value);
|
||||||
const int minus_width=10;
|
const int minus_width=10;
|
||||||
|
@ -826,7 +854,8 @@ void OLED_DrawAltitudeAndSpeed(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||||
u8g2_DrawXBM(OLED, 0, 47, plus_width, plus_height, plus_bits);
|
u8g2_DrawXBM(OLED, 0, 47, plus_width, plus_height, plus_bits);
|
||||||
}
|
}
|
||||||
Len=Format_UnsDec(Line, vario_value, 2, 1);
|
if(isVarioUnitMPS) Len=Format_UnsDec(Line, vario_value, 2, 1);
|
||||||
|
if(isVarioUnitFPM) Len=Format_UnsDec(Line, vario_value, 2, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Len=Format_String(Line, "-.-");
|
Len=Format_String(Line, "-.-");
|
||||||
|
@ -835,16 +864,24 @@ void OLED_DrawAltitudeAndSpeed(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
uint8_t Vario_width = u8g2_GetStrWidth(OLED, Line);
|
uint8_t Vario_width = u8g2_GetStrWidth(OLED, Line);
|
||||||
u8g2_DrawStr(OLED, 54-Vario_width, 64, Line);
|
u8g2_DrawStr(OLED, 54-Vario_width, 64, Line);
|
||||||
|
|
||||||
const int ms_width=7;
|
if(isVarioUnitMPS)
|
||||||
const int ms_height=17;
|
{ const int ms_width=7;
|
||||||
static unsigned char ms_bits[] =
|
const int ms_height=17;
|
||||||
{ 0x00, 0x00, 0x16, 0x2a, 0x2a, 0x2a, 0x2a, 0x00, 0x7f, 0x00, 0x1c, 0x22,
|
static unsigned char ms_bits[] =
|
||||||
0x02, 0x1c, 0x20, 0x22, 0x1c };
|
{ 0x00, 0x00, 0x16, 0x2a, 0x2a, 0x2a, 0x2a, 0x00, 0x7f, 0x00, 0x1c, 0x22,
|
||||||
u8g2_DrawXBM(OLED, 58, 47, ms_width, ms_height, ms_bits);
|
0x02, 0x1c, 0x20, 0x22, 0x1c };
|
||||||
|
u8g2_DrawXBM(OLED, 58, 47, ms_width, ms_height, ms_bits); }
|
||||||
|
else if(isVarioUnitFPM)
|
||||||
|
{ const int ms_width=7;
|
||||||
|
const int ms_height=17;
|
||||||
|
static unsigned char ms_bits[] =
|
||||||
|
{ 0x84, 0xa2, 0xf7, 0xa2, 0xa2, 0xa2, 0xc2, 0x80, 0xff, 0x80, 0x00, 0x16, 0x2a, 0x2a, 0x2a, 0x2a, 0x00 };
|
||||||
|
u8g2_DrawXBM(OLED, 58, 47, ms_width, ms_height, ms_bits); }
|
||||||
|
|
||||||
// Speed
|
// Speed
|
||||||
if(GPS && GPS->isValid())
|
if(GPS && GPS->isValid())
|
||||||
{ uint16_t speed = (GPS->Speed*9+12)/25;
|
{ uint16_t speed = (GPS->Speed*9+12)/25;
|
||||||
|
if(isSpeedUnitKnot) speed = (GPS->Speed*199+512)>>10;
|
||||||
Len=Format_UnsDec(Line, speed, 1, 0); }
|
Len=Format_UnsDec(Line, speed, 1, 0); }
|
||||||
else
|
else
|
||||||
Len=Format_String(Line, "--");
|
Len=Format_String(Line, "--");
|
||||||
|
@ -853,13 +890,22 @@ void OLED_DrawAltitudeAndSpeed(u8g2_t *OLED, GPS_Position *GPS)
|
||||||
uint8_t Speed_width = u8g2_GetStrWidth(OLED, Line);
|
uint8_t Speed_width = u8g2_GetStrWidth(OLED, Line);
|
||||||
u8g2_DrawStr(OLED, 114-Speed_width, 64, Line);
|
u8g2_DrawStr(OLED, 114-Speed_width, 64, Line);
|
||||||
|
|
||||||
const int kmh_width=10;
|
if(isSpeedUnitKMH)
|
||||||
const int kmh_height=17;
|
{ const int kmh_width=10;
|
||||||
static unsigned char kmh_bits[] =
|
const int kmh_height=17;
|
||||||
{ 0x01, 0x00, 0x01, 0x00, 0x69, 0x01, 0xa5, 0x02, 0xa3, 0x02, 0xa5, 0x02,
|
static unsigned char kmh_bits[] =
|
||||||
0xa9, 0x02, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00,
|
{ 0x01, 0x00, 0x01, 0x00, 0x69, 0x01, 0xa5, 0x02, 0xa3, 0x02, 0xa5, 0x02,
|
||||||
0x08, 0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00 };
|
0xa9, 0x02, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00,
|
||||||
u8g2_DrawXBM(OLED, 118, 47, kmh_width, kmh_height, kmh_bits);
|
0x08, 0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00 };
|
||||||
|
u8g2_DrawXBM(OLED, 118, 47, kmh_width, kmh_height, kmh_bits); }
|
||||||
|
else if(isSpeedUnitKnot)
|
||||||
|
{ const int kmh_width=10;
|
||||||
|
const int kmh_height=17;
|
||||||
|
static unsigned char kmh_bits[] =
|
||||||
|
{ 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x01, 0xfc, 0x01, 0xfc,
|
||||||
|
0xe9, 0xfc, 0x25, 0xfd, 0x23, 0xfd, 0x25, 0xfd, 0x29, 0xfd, 0x00, 0xfc,
|
||||||
|
0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc};
|
||||||
|
u8g2_DrawXBM(OLED, 118, 47, kmh_width, kmh_height, kmh_bits); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void OLED_DrawFlight(u8g2_t *OLED, GPS_Position *GPS) // draw flight status page
|
void OLED_DrawFlight(u8g2_t *OLED, GPS_Position *GPS) // draw flight status page
|
||||||
|
|
276
main/http.cpp
276
main/http.cpp
|
@ -212,41 +212,25 @@ static void ParmForm_GPS(httpd_req_t *Req) // produce HTML form for GPS paramet
|
||||||
httpd_resp_sendstr_chunk(Req, "<div class=\"submit-row\"><input type=\"submit\" value=\"Save\"></div>\n");
|
httpd_resp_sendstr_chunk(Req, "<div class=\"submit-row\"><input type=\"submit\" value=\"Save\"></div>\n");
|
||||||
httpd_resp_sendstr_chunk(Req, "</form>\n"); }
|
httpd_resp_sendstr_chunk(Req, "</form>\n"); }
|
||||||
|
|
||||||
static void ParmForm_Other(httpd_req_t *Req) // produce HTML form for parameters not included in other forms
|
static void ParmForm_Page(httpd_req_t *Req) // produce HTML form for parameters not included in other forms
|
||||||
{ char Line[16]; int Len;
|
{ char Line[16]; int Len;
|
||||||
|
|
||||||
httpd_resp_sendstr_chunk(Req, "<h2>Other</h2>");
|
httpd_resp_sendstr_chunk(Req, "<h2>Pages</h2>");
|
||||||
httpd_resp_sendstr_chunk(Req, "<form action=\"/parm.html\" method=\"POST\" id=\"Other\">\n");
|
httpd_resp_sendstr_chunk(Req, "<form action=\"/parm.html\" method=\"POST\" id=\"Pages\">\n");
|
||||||
|
|
||||||
Begin_Control_Row(Req, "Freq. plan");
|
Begin_Control_Row(Req, "Altitude Unit");
|
||||||
const char *FreqPlanTable[6] = { "Auto", "Europe/Africa", "USA/Canada", "Australia/Chile", "New Zeeland", "Izrael" };
|
const char *AltitudeUnitTable[2] = { "meter", "feet" } ;
|
||||||
SelectList(Req, "FreqPlan", FreqPlanTable, 6, Parameters.FreqPlan);
|
SelectList(Req, "AltitudeUnit", AltitudeUnitTable, 2, Parameters.AltitudeUnit);
|
||||||
End_Control_Row(Req);
|
End_Control_Row(Req);
|
||||||
|
|
||||||
Begin_Control_Row(Req, "Tx power [dBm]");
|
Begin_Control_Row(Req, "Speed Unit");
|
||||||
httpd_resp_sendstr_chunk(Req, "<input type=\"text\" name=\"TxPower\" size=\"10\" value=\"");
|
const char *SpeedUnitTable[2] = { "km/h", "knot" } ;
|
||||||
Len=Format_SignDec(Line, (int16_t)Parameters.TxPower, 1, 0, 1);
|
SelectList(Req, "SpeedUnit", SpeedUnitTable, 2, Parameters.SpeedUnit);
|
||||||
httpd_resp_send_chunk(Req, Line, Len);
|
|
||||||
httpd_resp_sendstr_chunk(Req, "\">");
|
|
||||||
End_Control_Row(Req);
|
End_Control_Row(Req);
|
||||||
|
|
||||||
Begin_Control_Row(Req, "Freq.corr. [ppm]");
|
Begin_Control_Row(Req, "Vario Unit");
|
||||||
httpd_resp_sendstr_chunk(Req, "<input type=\"text\" name=\"RFchipFreqCorr\" size=\"10\" value=\"");
|
const char *VarioUnitTable[2] = { "m/s", "fpm" } ;
|
||||||
Len=Format_SignDec(Line, Parameters.RFchipFreqCorr, 2, 1, 1);
|
SelectList(Req, "VarioUnit", VarioUnitTable, 2, Parameters.VarioUnit);
|
||||||
httpd_resp_send_chunk(Req, Line, Len);
|
|
||||||
httpd_resp_sendstr_chunk(Req, "\">");
|
|
||||||
End_Control_Row(Req);
|
|
||||||
|
|
||||||
Begin_Control_Row(Req, "Console baud");
|
|
||||||
httpd_resp_sendstr_chunk(Req, "<input type=\"text\" name=\"CONbaud\" size=\"10\" value=\"");
|
|
||||||
Len=Format_UnsDec(Line, Parameters.CONbaud);
|
|
||||||
httpd_resp_send_chunk(Req, Line, Len);
|
|
||||||
httpd_resp_sendstr_chunk(Req, "\">");
|
|
||||||
End_Control_Row(Req);
|
|
||||||
|
|
||||||
Begin_Control_Row(Req, "Verbose");
|
|
||||||
const char *VerboseTable[2] = { "0 (off)", "1 (on)" };
|
|
||||||
SelectList(Req, "Verbose", VerboseTable, 2, Parameters.Verbose);
|
|
||||||
End_Control_Row(Req);
|
End_Control_Row(Req);
|
||||||
|
|
||||||
Begin_Control_Row(Req, "Pages");
|
Begin_Control_Row(Req, "Pages");
|
||||||
|
@ -299,6 +283,45 @@ function pageCheckbox(checkbox) {\n\
|
||||||
}\n\
|
}\n\
|
||||||
</script>\n");
|
</script>\n");
|
||||||
|
|
||||||
|
httpd_resp_sendstr_chunk(Req, "<div class=\"submit-row\"><input type=\"submit\" value=\"Save\"></div>\n");
|
||||||
|
httpd_resp_sendstr_chunk(Req, "</form>\n"); }
|
||||||
|
|
||||||
|
static void ParmForm_Other(httpd_req_t *Req) // produce HTML form for parameters not included in other forms
|
||||||
|
{ char Line[16]; int Len;
|
||||||
|
|
||||||
|
httpd_resp_sendstr_chunk(Req, "<h2>Other</h2>");
|
||||||
|
httpd_resp_sendstr_chunk(Req, "<form action=\"/parm.html\" method=\"POST\" id=\"Other\">\n");
|
||||||
|
|
||||||
|
Begin_Control_Row(Req, "Freq. plan");
|
||||||
|
const char *FreqPlanTable[6] = { "Auto", "Europe/Africa", "USA/Canada", "Australia/Chile", "New Zeeland", "Izrael" };
|
||||||
|
SelectList(Req, "FreqPlan", FreqPlanTable, 6, Parameters.FreqPlan);
|
||||||
|
End_Control_Row(Req);
|
||||||
|
|
||||||
|
Begin_Control_Row(Req, "Tx power [dBm]");
|
||||||
|
httpd_resp_sendstr_chunk(Req, "<input type=\"text\" name=\"TxPower\" size=\"10\" value=\"");
|
||||||
|
Len=Format_SignDec(Line, (int16_t)Parameters.TxPower, 1, 0, 1);
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
httpd_resp_sendstr_chunk(Req, "\">");
|
||||||
|
End_Control_Row(Req);
|
||||||
|
|
||||||
|
Begin_Control_Row(Req, "Freq.corr. [ppm]");
|
||||||
|
httpd_resp_sendstr_chunk(Req, "<input type=\"text\" name=\"RFchipFreqCorr\" size=\"10\" value=\"");
|
||||||
|
Len=Format_SignDec(Line, Parameters.RFchipFreqCorr, 2, 1, 1);
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
httpd_resp_sendstr_chunk(Req, "\">");
|
||||||
|
End_Control_Row(Req);
|
||||||
|
|
||||||
|
Begin_Control_Row(Req, "Console baud");
|
||||||
|
httpd_resp_sendstr_chunk(Req, "<input type=\"text\" name=\"CONbaud\" size=\"10\" value=\"");
|
||||||
|
Len=Format_UnsDec(Line, Parameters.CONbaud);
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
httpd_resp_sendstr_chunk(Req, "\">");
|
||||||
|
End_Control_Row(Req);
|
||||||
|
|
||||||
|
Begin_Control_Row(Req, "Verbose");
|
||||||
|
const char *VerboseTable[2] = { "0 (off)", "1 (on)" };
|
||||||
|
SelectList(Req, "Verbose", VerboseTable, 2, Parameters.Verbose);
|
||||||
|
End_Control_Row(Req);
|
||||||
|
|
||||||
httpd_resp_sendstr_chunk(Req, "<div class=\"submit-row\"><input type=\"submit\" value=\"Save\"></div>\n");
|
httpd_resp_sendstr_chunk(Req, "<div class=\"submit-row\"><input type=\"submit\" value=\"Save\"></div>\n");
|
||||||
httpd_resp_sendstr_chunk(Req, "</form>\n"); }
|
httpd_resp_sendstr_chunk(Req, "</form>\n"); }
|
||||||
|
@ -397,7 +420,14 @@ static void ParmForm_AP(httpd_req_t *Req) // Wi-Fi access point parameters { cha
|
||||||
httpd_resp_sendstr_chunk(Req, "</form>\n"); }
|
httpd_resp_sendstr_chunk(Req, "</form>\n"); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void ParmForm_Defaults(httpd_req_t *Req)
|
||||||
|
{
|
||||||
|
httpd_resp_sendstr_chunk(Req, "\
|
||||||
|
<form action=\"/parm.html\" method=\"POST\" onsubmit=\"return confirm('Are you sure to restore default configuration?')\">\n\
|
||||||
|
<input type=\"submit\" value=\"Restore Default Configuration\">\n\
|
||||||
|
<input type=\"hidden\" name=\"Defaults\" value=\"1\">\n\
|
||||||
|
</form>\n");
|
||||||
|
}
|
||||||
|
|
||||||
static void ParmForm_Restart(httpd_req_t *Req)
|
static void ParmForm_Restart(httpd_req_t *Req)
|
||||||
{
|
{
|
||||||
|
@ -410,6 +440,184 @@ static void ParmForm_Restart(httpd_req_t *Req)
|
||||||
|
|
||||||
// ============================================================================================================
|
// ============================================================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void Table_System(httpd_req_t *Req)
|
||||||
|
{ char Line[128]; int Len;
|
||||||
|
uint32_t Time=TimeSync_Time();
|
||||||
|
uint32_t Sec = (Time-1)%60;
|
||||||
|
GPS_Position *GPS = GPS_getPosition(Sec); if(GPS==0) return;
|
||||||
|
|
||||||
|
httpd_resp_sendstr_chunk(Req, "<h2>System</h2>");
|
||||||
|
httpd_resp_sendstr_chunk(Req, "<table class=\"table table-striped table-bordered\">\n");
|
||||||
|
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Board</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_FollowMe
|
||||||
|
Len+=Format_String(Line+Len, "FollowMe");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_TTGO
|
||||||
|
Len+=Format_String(Line+Len, "TTGO");
|
||||||
|
#endif
|
||||||
|
#if defined(WITH_HELTEC) || defined(WITH_HELTEC_V2)
|
||||||
|
Len+=Format_String(Line+Len, "HELTEC");
|
||||||
|
#endif
|
||||||
|
#if defined(WITH_TBEAM) || defined(WITH_TBEAM_V10)
|
||||||
|
Len+=Format_String(Line+Len, "T-BEAM");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Display</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_ILI9341 // 320x240 M5stack
|
||||||
|
Len+=Format_String(Line+Len, "ILI9341");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_ST7789 // IPS 240x240 ST7789
|
||||||
|
Len+=Format_String(Line+Len, "ST7789");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_TFT_LCD // TFT LCD
|
||||||
|
Len+=Format_String(Line+Len, "TFT_LCD");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_OLED // OLED display on the I2C: some TTGO modules are without OLED display
|
||||||
|
Len+=Format_String(Line+Len, "OLED");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_OLED2 // 2nd OLED display, I2C address next higher
|
||||||
|
Len+=Format_String(Line+Len, "<br>OLED2");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_U8G2_OLED // I2C OLED through the U8g2 library
|
||||||
|
Len+=Format_String(Line+Len, "U8G2_OLED");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>GPS</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_GPS_MTK
|
||||||
|
Len+=Format_String(Line+Len, "MTK GPS");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_GPS_UBX
|
||||||
|
Len+=Format_String(Line+Len, "UBX GPS");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_GPS_SRF
|
||||||
|
Len+=Format_String(Line+Len, "SRF GPS");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Radio</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_RFM95
|
||||||
|
Len+=Format_String(Line+Len, "RFM95");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_RFM69
|
||||||
|
Len+=Format_String(Line+Len, "RFM69");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Baro</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_BMP180
|
||||||
|
Len+=Format_String(Line+Len, "BMP180");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_BMP280
|
||||||
|
Len+=Format_String(Line+Len, "BMP280");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_BME280
|
||||||
|
Len+=Format_String(Line+Len, "BME280");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_MS5607
|
||||||
|
Len+=Format_String(Line+Len, "MS5607");
|
||||||
|
#endif
|
||||||
|
#ifdef WITH_MS5611
|
||||||
|
Len+=Format_String(Line+Len, "MS5611");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Bluetooth serial port</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_BT_SPP
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>LoRaWAN</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_LORAWAN
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Digital Buzzer</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_BEEPER
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Analog Sound</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_SOUND
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>SD Card</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_SD
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>SPIFFS</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_SPIFFS
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>WiFi</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_WIFI
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Access Point (wifi)</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_AP
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
Len =Format_String(Line, "<tr><td>Encrypt</td><td align=\"right\">");
|
||||||
|
#ifdef WITH_ENCRYPT
|
||||||
|
Len+=Format_String(Line+Len, "Yes");
|
||||||
|
#else
|
||||||
|
Len+=Format_String(Line+Len, "No");
|
||||||
|
#endif
|
||||||
|
Len+=Format_String(Line+Len, "</td></tr>\n");
|
||||||
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
|
|
||||||
|
|
||||||
|
httpd_resp_sendstr_chunk(Req, "</table>\n"); }
|
||||||
|
|
||||||
static void Table_GPS(httpd_req_t *Req)
|
static void Table_GPS(httpd_req_t *Req)
|
||||||
{ char Line[128]; int Len;
|
{ char Line[128]; int Len;
|
||||||
uint32_t Time=TimeSync_Time();
|
uint32_t Time=TimeSync_Time();
|
||||||
|
@ -771,6 +979,7 @@ static void Html_End(httpd_req_t *Req)
|
||||||
static esp_err_t parm_post_handler(httpd_req_t *Req)
|
static esp_err_t parm_post_handler(httpd_req_t *Req)
|
||||||
{
|
{
|
||||||
bool Restart=0;
|
bool Restart=0;
|
||||||
|
bool Defaults=0;
|
||||||
/* Destination buffer for content of HTTP POST request.
|
/* Destination buffer for content of HTTP POST request.
|
||||||
* httpd_req_recv() accepts char* only, but content could
|
* httpd_req_recv() accepts char* only, but content could
|
||||||
* as well be any binary data (needs type casting).
|
* as well be any binary data (needs type casting).
|
||||||
|
@ -806,6 +1015,7 @@ static esp_err_t parm_post_handler(httpd_req_t *Req)
|
||||||
#endif
|
#endif
|
||||||
char *Line=URL;
|
char *Line=URL;
|
||||||
Restart = strstr(Line,"Restart=1");
|
Restart = strstr(Line,"Restart=1");
|
||||||
|
Defaults = strstr(Line,"Defaults=1");
|
||||||
for( ; ; )
|
for( ; ; )
|
||||||
{ Parameters.ReadLine(Line);
|
{ Parameters.ReadLine(Line);
|
||||||
Line = strchr(Line, '&'); if(Line==0) break;
|
Line = strchr(Line, '&'); if(Line==0) break;
|
||||||
|
@ -813,6 +1023,9 @@ static esp_err_t parm_post_handler(httpd_req_t *Req)
|
||||||
free(URL);
|
free(URL);
|
||||||
Parameters.WriteToNVS();
|
Parameters.WriteToNVS();
|
||||||
|
|
||||||
|
if(Defaults)
|
||||||
|
{ Parameters.setDefault(); }
|
||||||
|
|
||||||
if(Restart)
|
if(Restart)
|
||||||
{
|
{
|
||||||
#ifdef WITH_SPIFFS
|
#ifdef WITH_SPIFFS
|
||||||
|
@ -842,8 +1055,12 @@ static esp_err_t parm_get_handler(httpd_req_t *Req)
|
||||||
#ifdef WITH_STRATUX
|
#ifdef WITH_STRATUX
|
||||||
ParmForm_Stratux(Req);
|
ParmForm_Stratux(Req);
|
||||||
#endif
|
#endif
|
||||||
|
ParmForm_Page(Req);
|
||||||
|
|
||||||
ParmForm_Other(Req);
|
ParmForm_Other(Req);
|
||||||
|
|
||||||
|
ParmForm_Defaults(Req);
|
||||||
|
|
||||||
ParmForm_Restart(Req);
|
ParmForm_Restart(Req);
|
||||||
|
|
||||||
Html_End(Req);
|
Html_End(Req);
|
||||||
|
@ -860,6 +1077,7 @@ static esp_err_t top_get_handler(httpd_req_t *Req)
|
||||||
httpd_resp_send_chunk(Req, Line, Len);
|
httpd_resp_send_chunk(Req, Line, Len);
|
||||||
httpd_resp_sendstr_chunk(Req, "</b><br />\n");
|
httpd_resp_sendstr_chunk(Req, "</b><br />\n");
|
||||||
|
|
||||||
|
Table_System(Req);
|
||||||
Table_GPS(Req);
|
Table_GPS(Req);
|
||||||
Table_RF(Req);
|
Table_RF(Req);
|
||||||
Table_Batt(Req);
|
Table_Batt(Req);
|
||||||
|
|
|
@ -128,8 +128,11 @@ class FlashParameters
|
||||||
union
|
union
|
||||||
{ uint32_t Page;
|
{ uint32_t Page;
|
||||||
struct
|
struct
|
||||||
{ uint32_t PageMask:27; // enable/disable individual pages on the LCD or OLED screen
|
{ uint32_t PageMask:21; // enable/disable individual pages on the LCD or OLED screen
|
||||||
uint8_t InitialPage:5; // the first page to show after boot
|
uint8_t InitialPage:5; // the first page to show after boot
|
||||||
|
uint8_t AltitudeUnit:2; // 0=meter, 1=feet
|
||||||
|
uint8_t SpeedUnit:2; // 0=km/h, 1=knot
|
||||||
|
uint8_t VarioUnit:2; // 0=m/s, 1=feet/minute
|
||||||
} ;
|
} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
@ -269,6 +272,9 @@ uint16_t StratuxPort;
|
||||||
PPSdelay = DEFAULT_PPSdelay; // [ms]
|
PPSdelay = DEFAULT_PPSdelay; // [ms]
|
||||||
PageMask = 0xFF;
|
PageMask = 0xFF;
|
||||||
InitialPage = 0;
|
InitialPage = 0;
|
||||||
|
AltitudeUnit = 0; // meter
|
||||||
|
SpeedUnit = 0; // km/h
|
||||||
|
VarioUnit = 0; // m/s
|
||||||
for(uint8_t Idx=0; Idx<InfoParmNum; Idx++)
|
for(uint8_t Idx=0; Idx<InfoParmNum; Idx++)
|
||||||
InfoParmValue(Idx)[0] = 0;
|
InfoParmValue(Idx)[0] = 0;
|
||||||
#ifdef WITH_LORAWAN
|
#ifdef WITH_LORAWAN
|
||||||
|
@ -686,6 +692,15 @@ uint16_t StratuxPort;
|
||||||
if(strcmp(Name, "InitialPage")==0)
|
if(strcmp(Name, "InitialPage")==0)
|
||||||
{ int32_t Mode=0; if(Read_Int(Mode, Value)<=0) return 0;
|
{ int32_t Mode=0; if(Read_Int(Mode, Value)<=0) return 0;
|
||||||
InitialPage=Mode; return 1; }
|
InitialPage=Mode; return 1; }
|
||||||
|
if(strcmp(Name, "AltitudeUnit")==0)
|
||||||
|
{ int32_t Mode=0; if(Read_Int(Mode, Value)<=0) return 0;
|
||||||
|
AltitudeUnit=Mode; return 1; }
|
||||||
|
if(strcmp(Name, "SpeedUnit")==0)
|
||||||
|
{ int32_t Mode=0; if(Read_Int(Mode, Value)<=0) return 0;
|
||||||
|
SpeedUnit=Mode; return 1; }
|
||||||
|
if(strcmp(Name, "VarioUnit")==0)
|
||||||
|
{ int32_t Mode=0; if(Read_Int(Mode, Value)<=0) return 0;
|
||||||
|
VarioUnit=Mode; return 1; }
|
||||||
if(strcmp(Name, "Verbose")==0)
|
if(strcmp(Name, "Verbose")==0)
|
||||||
{ int32_t Mode=0; if(Read_Int(Mode, Value)<=0) return 0;
|
{ int32_t Mode=0; if(Read_Int(Mode, Value)<=0) return 0;
|
||||||
Verbose=Mode; return 1; }
|
Verbose=Mode; return 1; }
|
||||||
|
@ -871,6 +886,9 @@ uint16_t StratuxPort;
|
||||||
Write_Hex (Line, "GNSS" , (uint32_t)GNSS, 2); strcat(Line, " # [ mask]\n"); if(fputs(Line, File)==EOF) return EOF;
|
Write_Hex (Line, "GNSS" , (uint32_t)GNSS, 2); strcat(Line, " # [ mask]\n"); if(fputs(Line, File)==EOF) return EOF;
|
||||||
Write_Hex (Line, "PageMask" , (uint32_t)PageMask, 4); strcat(Line, " # [ mask]\n"); if(fputs(Line, File)==EOF) return EOF;
|
Write_Hex (Line, "PageMask" , (uint32_t)PageMask, 4); strcat(Line, " # [ mask]\n"); if(fputs(Line, File)==EOF) return EOF;
|
||||||
Write_UnsDec (Line, "InitialPage" , (uint32_t)InitialPage ); strcat(Line, " # [ ]\n"); if(fputs(Line, File)==EOF) return EOF;
|
Write_UnsDec (Line, "InitialPage" , (uint32_t)InitialPage ); strcat(Line, " # [ ]\n"); if(fputs(Line, File)==EOF) return EOF;
|
||||||
|
Write_UnsDec (Line, "AltitudeUnit", (uint32_t)AltitudeUnit); strcat(Line, " # [ ]\n"); if(fputs(Line, File)==EOF) return EOF;
|
||||||
|
Write_UnsDec (Line, "SpeedUnit", (uint32_t)SpeedUnit); strcat(Line, " # [ ]\n"); if(fputs(Line, File)==EOF) return EOF;
|
||||||
|
Write_UnsDec (Line, "VarioUnit", (uint32_t)VarioUnit); strcat(Line, " # [ ]\n"); if(fputs(Line, File)==EOF) return EOF;
|
||||||
Write_UnsDec (Line, "PPSdelay" , (uint32_t)PPSdelay ); strcat(Line, " # [ ms]\n"); if(fputs(Line, File)==EOF) return EOF;
|
Write_UnsDec (Line, "PPSdelay" , (uint32_t)PPSdelay ); strcat(Line, " # [ ms]\n"); if(fputs(Line, File)==EOF) return EOF;
|
||||||
#ifdef WITH_BT_PWR
|
#ifdef WITH_BT_PWR
|
||||||
Write_UnsDec (Line, "Bluetooth" , BT_ON ); strcat(Line, " # [ 1|0]\n"); if(fputs(Line, File)==EOF) return EOF;
|
Write_UnsDec (Line, "Bluetooth" , BT_ON ); strcat(Line, " # [ 1|0]\n"); if(fputs(Line, File)==EOF) return EOF;
|
||||||
|
@ -939,6 +957,9 @@ uint16_t StratuxPort;
|
||||||
Write_Hex (Line, "GNSS" , (uint32_t)GNSS , 2); strcat(Line, " # [ mask]\n"); Format_String(Output, Line);
|
Write_Hex (Line, "GNSS" , (uint32_t)GNSS , 2); strcat(Line, " # [ mask]\n"); Format_String(Output, Line);
|
||||||
Write_Hex (Line, "PageMask" , (uint32_t)PageMask, 4); strcat(Line, " # [ mask]\n"); Format_String(Output, Line);
|
Write_Hex (Line, "PageMask" , (uint32_t)PageMask, 4); strcat(Line, " # [ mask]\n"); Format_String(Output, Line);
|
||||||
Write_UnsDec (Line, "InitialPage" , (uint32_t)InitialPage ); strcat(Line, " # [ ]\n"); Format_String(Output, Line);
|
Write_UnsDec (Line, "InitialPage" , (uint32_t)InitialPage ); strcat(Line, " # [ ]\n"); Format_String(Output, Line);
|
||||||
|
Write_UnsDec (Line, "AltitudeUnit" , (uint32_t)AltitudeUnit); strcat(Line, " # [ ]\n"); Format_String(Output, Line);
|
||||||
|
Write_UnsDec (Line, "SpeedUnit" , (uint32_t)SpeedUnit); strcat(Line, " # [ ]\n"); Format_String(Output, Line);
|
||||||
|
Write_UnsDec (Line, "VarioUnit" , (uint32_t)VarioUnit); strcat(Line, " # [ ]\n"); Format_String(Output, Line);
|
||||||
Write_UnsDec (Line, "PPSdelay" , (uint32_t)PPSdelay ); strcat(Line, " # [ ms]\n"); Format_String(Output, Line);
|
Write_UnsDec (Line, "PPSdelay" , (uint32_t)PPSdelay ); strcat(Line, " # [ ms]\n"); Format_String(Output, Line);
|
||||||
#ifdef WITH_BT_PWR
|
#ifdef WITH_BT_PWR
|
||||||
Write_UnsDec (Line, "Bluetooth" , BT_ON ); strcat(Line, " # [ 1|0]\n"); Format_String(Output, Line);
|
Write_UnsDec (Line, "Bluetooth" , BT_ON ); strcat(Line, " # [ 1|0]\n"); Format_String(Output, Line);
|
||||||
|
|
Ładowanie…
Reference in New Issue