kopia lustrzana https://github.com/dl9rdz/rdz_ttgo_sonde
Merge branch 'dl9rdz:devel' into devel
commit
3d80c1740e
|
@ -26,7 +26,7 @@ Manufacturer | Model | Position | Temperature | Humidity | Pressure
|
|||
Vaisala | RS92-SGP/NGP | :heavy_check_mark: | :heavy_check_mark: | :x: | :x:
|
||||
Vaisala | RS41-SG/SGP/SGM | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark:
|
||||
Graw | DFM06/09/17 | :heavy_check_mark: | :x: | :x: | :x:
|
||||
Meteomodem | M10 | :heavy_check_mark: | :x: | :x: | Not Sent
|
||||
Meteomodem | M10 | :heavy_check_mark: | :heavy_checkmark: | :x: | Not Sent
|
||||
Meteomodem | M20 | :heavy_check_mark: | :x: | :x: | Not Sent
|
||||
Meteo-Radiy | MP3-H1 (MRZ-H1) | :heavy_check_mark: | :x: | :x: | :x:
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
# S scan list entry info: l/empty: launch site name, #=entry nr, t=total entries, a=active entries, /: #/t
|
||||
# K RS41 kill timer values: Kl launch timer, Kb burst timer, Kc kill countdown
|
||||
# format: K_4: h:mm k_6: h:mm:ss k_s: sssss, nothing shown for other sonde
|
||||
# Mx telemetry value x (t temp p preassure h hyg) [not yet implemented, maybe some day in future]
|
||||
# Mx telemetry value x (t temp p preassure h hyg b battery)
|
||||
# Gx GPS-related data
|
||||
# raw data from GPS: GA, GO, GH, GC: LAtitude, lOngitude, Altutide(Height), Course over ground
|
||||
# relative to sonde: GD, GI, GB: Distance, dIrection (absolute), relative Bearing
|
||||
|
@ -203,7 +203,7 @@ timeaction=#,#,#
|
|||
7,0=gV
|
||||
7,2=xd=
|
||||
7,4=gD
|
||||
7,12=gI°
|
||||
7,12=gI°
|
||||
|
||||
############
|
||||
@BatteryOLED
|
||||
|
@ -224,3 +224,18 @@ fonts=0,1
|
|||
6,0=xTemp:
|
||||
6,5=bT C
|
||||
|
||||
#############
|
||||
@Meteo
|
||||
timer=-1,-1,-1
|
||||
key1action=+,0,F,W
|
||||
key2action=>,#,#,#
|
||||
timeaction=#,#,#
|
||||
fonts=0,1
|
||||
0,0=Is
|
||||
0,9=f
|
||||
1,12=t
|
||||
2,0=xTelemetry Data
|
||||
4,0=Mt°C
|
||||
4,9=Mh%rH
|
||||
6,0=MphPa
|
||||
6,11=MbV
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
# S scan list entry info: l/empty: launch site name, #=entry nr, t=total entries, a=active entries, /: #/t
|
||||
# K RS41 kill timer values: Kl launch timer, Kb burst timer, Kc kill countdown
|
||||
# format: K_4: h:mm k_6: h:mm:ss k_s: sssss, nothing shown for other sonde
|
||||
# Mx telemetry value x (t temp p preassure h hyg) [not yet implemented, maybe some day in future]
|
||||
# Mx telemetry value x (t temp p preassure h hyg b batt)
|
||||
# Gx GPS-related data
|
||||
# raw data from GPS: GA, GO, GH, GC: LAtitude, lOngitude, Altutide(Height), Course over ground
|
||||
# relative to sonde: GD, GI, GB: Distance, dIrection (absolute), relative Bearing
|
||||
|
@ -571,3 +571,32 @@ color=639AFF
|
|||
color=FF0000,000000
|
||||
12.7,0.4=Q4
|
||||
12.7,18=bVV
|
||||
|
||||
#################
|
||||
@TelemetryData
|
||||
scale=22,13
|
||||
timer=-1,-1,N
|
||||
key1action=+,0,F,W
|
||||
key2action=>,#,#,#
|
||||
timeaction=#,#,0
|
||||
fonts=5,6
|
||||
color=FFD700
|
||||
0,0,10.5=Is
|
||||
color=0000FF
|
||||
0,11,-5.5=f
|
||||
1,0,4=t
|
||||
1,10.5,-6=c
|
||||
color=00ff00
|
||||
2,0,7=L
|
||||
3,0,7=O
|
||||
color=FFA500
|
||||
2,9.5,-7=a
|
||||
2.8,9.5,-7=vm/s
|
||||
color=AA5522
|
||||
3.6,9.5,-7=hkkm/h
|
||||
color=FFFFFF
|
||||
4.4,0=xTelemetry Data:
|
||||
5.3,0=Mt C
|
||||
5.3,9=Mh%rH
|
||||
6.5,0=MphPa
|
||||
6.5,11=MbV
|
||||
|
|
|
@ -809,6 +809,10 @@ void Display::parseDispElement(char *text, DispEntry *de)
|
|||
de->extra = strdup(text+1);
|
||||
//Serial.printf("parsing 'f' entry: extra is '%s'\n", de->extra);
|
||||
break;
|
||||
case 'm':
|
||||
de->func = disp.drawTelemetry;
|
||||
de->extra = strdup(text+1);
|
||||
break;
|
||||
case 'n':
|
||||
// IP address / small always uses tiny font on TFT for backward compatibility
|
||||
// Large font can be used arbitrarily
|
||||
|
@ -1283,6 +1287,45 @@ void Display::drawSite(DispEntry *de) {
|
|||
drawString(de, buf);
|
||||
}
|
||||
void Display::drawTelemetry(DispEntry *de) {
|
||||
rdis->setFont(de->fmt);
|
||||
float value=0;
|
||||
memset(buf, ' ', 16);
|
||||
switch(de->extra[0]) {
|
||||
case 't':
|
||||
value = sonde.si()->d.temperature;
|
||||
if(!isnan(value)) {
|
||||
sprintf(buf, "%5.1f", value);
|
||||
strcat(buf, de->extra+1);
|
||||
}
|
||||
buf[5+strlen(de->extra+1)] = 0;
|
||||
break;
|
||||
case 'p':
|
||||
value = sonde.si()->d.pressure;
|
||||
if(!isnan(value)) {
|
||||
if(value>=1000) sprintf(buf, "%6.1f", value);
|
||||
else sprintf(buf, "%6.2f", value);
|
||||
strcat(buf, de->extra+1);
|
||||
}
|
||||
buf[6+strlen(de->extra+1)] = 0;
|
||||
break;
|
||||
case 'h':
|
||||
value = sonde.si()->d.relativeHumidity;
|
||||
if(!isnan(value)) {
|
||||
sprintf(buf, "%4.1f", value);
|
||||
strcat(buf, de->extra+1);
|
||||
}
|
||||
buf[4+strlen(de->extra+1)] = 0;
|
||||
break;
|
||||
case 'b':
|
||||
value = sonde.si()->d.batteryVoltage;
|
||||
if(!isnan(value)) {
|
||||
snprintf(buf, 5, "%4.2f", value);
|
||||
strcat(buf, de->extra+1);
|
||||
}
|
||||
buf[5+strlen(de->extra+1)] = 0;
|
||||
break;
|
||||
}
|
||||
drawString(de,buf);
|
||||
}
|
||||
|
||||
void Display::drawKilltimer(DispEntry *de) {
|
||||
|
|
|
@ -333,7 +333,7 @@ int M10M20::decodeframeM10(uint8_t *data) {
|
|||
const float Rs[3] = { 12.1e3 , 36.5e3 , 475.0e3 };
|
||||
const float Rp[3] = { 1e20 , 330.0e3 , 2000.0e3 };
|
||||
uint8_t sct = data[62];
|
||||
float rt = getint16(data+63) & (0xFFF);
|
||||
float rt = getint16_r(data+63) & (0xFFF);
|
||||
float T = NAN;
|
||||
if(rt!=0 && sct<3) {
|
||||
rt = (4095-rt)/rt - (Rs[sct]/Rp[sct]);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
const char *version_name = "rdzTTGOsonde";
|
||||
const char *version_id = "devel20210924b";
|
||||
const char *version_id = "devel20210924c";
|
||||
const int SPIFFS_MAJOR=2;
|
||||
const int SPIFFS_MINOR=16;
|
||||
|
|
Ładowanie…
Reference in New Issue