kopia lustrzana https://github.com/dl9rdz/rdz_ttgo_sonde
bugfix sh import
rodzic
ae1e9e7c48
commit
22d492711a
|
@ -310,13 +310,11 @@ const char *createQRGForm() {
|
||||||
const char *handleQRGPost(AsyncWebServerRequest *request) {
|
const char *handleQRGPost(AsyncWebServerRequest *request) {
|
||||||
char label[10];
|
char label[10];
|
||||||
// parameters: a_i, f_1, t_i (active/frequency/type)
|
// parameters: a_i, f_1, t_i (active/frequency/type)
|
||||||
#if 1
|
|
||||||
File file = SPIFFS.open("/qrg.txt", "w");
|
File file = SPIFFS.open("/qrg.txt", "w");
|
||||||
if (!file) {
|
if (!file) {
|
||||||
Serial.println("Error while opening '/qrg.txt' for writing");
|
Serial.println("Error while opening '/qrg.txt' for writing");
|
||||||
return "Error while opening '/qrg.txt' for writing";
|
return "Error while opening '/qrg.txt' for writing";
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
Serial.println("Handling post request");
|
Serial.println("Handling post request");
|
||||||
#if 0
|
#if 0
|
||||||
int params = request->params();
|
int params = request->params();
|
||||||
|
@ -349,9 +347,7 @@ const char *handleQRGPost(AsyncWebServerRequest *request) {
|
||||||
}
|
}
|
||||||
file.close();
|
file.close();
|
||||||
|
|
||||||
Serial.println("Channel setup finished");
|
Serial.println("Channel setup finished\n");
|
||||||
Serial.println();
|
|
||||||
delay(500);
|
|
||||||
setupChannelList();
|
setupChannelList();
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
@ -2283,16 +2279,8 @@ void setup()
|
||||||
|
|
||||||
|
|
||||||
// == setup default channel list if qrg.txt read fails =========== //
|
// == setup default channel list if qrg.txt read fails =========== //
|
||||||
setupChannelList();
|
|
||||||
#if 0
|
|
||||||
sonde.clearSonde();
|
sonde.clearSonde();
|
||||||
sonde.addSonde(402.700, STYPE_RS41);
|
setupChannelList();
|
||||||
sonde.addSonde(405.700, STYPE_RS41);
|
|
||||||
sonde.addSonde(405.900, STYPE_RS41);
|
|
||||||
sonde.addSonde(403.450, STYPE_DFM09);
|
|
||||||
Serial.println("No channel config file, using defaults!");
|
|
||||||
Serial.println();
|
|
||||||
#endif
|
|
||||||
/// not here, done by sonde.setup(): rs41.setup();
|
/// not here, done by sonde.setup(): rs41.setup();
|
||||||
// == setup default channel list if qrg.txt read fails =========== //
|
// == setup default channel list if qrg.txt read fails =========== //
|
||||||
#ifndef DISABLE_SX1278
|
#ifndef DISABLE_SX1278
|
||||||
|
@ -3580,7 +3568,7 @@ void sondehub_send_data(WiFiClient * client, SondeInfo * s, struct st_sondehub *
|
||||||
// If something that looks like a valid HTTP response is received, we are ready to send the next data item
|
// If something that looks like a valid HTTP response is received, we are ready to send the next data item
|
||||||
if (shState == SH_CONN_WAITACK && cnt > 11 && strncmp(rs_msg, "HTTP/1", 6) == 0) {
|
if (shState == SH_CONN_WAITACK && cnt > 11 && strncmp(rs_msg, "HTTP/1", 6) == 0) {
|
||||||
shState = SH_CONN_IDLE;
|
shState = SH_CONN_IDLE;
|
||||||
if ( sonde.config.sondehub.fiactive)
|
if ( sonde.config.sondehub.fiactive && shImport==0 )
|
||||||
sondehub_send_fimport(client);
|
sondehub_send_fimport(client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ var cfgs = [
|
||||||
[ "mdnsname", "Network mDNS name"],
|
[ "mdnsname", "Network mDNS name"],
|
||||||
[ "ephftp", "FTP server for ephemeris data (RS92 decoder)"],
|
[ "ephftp", "FTP server for ephemeris data (RS92 decoder)"],
|
||||||
[ "debug", "Debug mode (0/1)" ],
|
[ "debug", "Debug mode (0/1)" ],
|
||||||
[ "maxsonde", "Maxumum number of QRG entries (must be <100)" ],
|
[ "maxsonde", "Maxumum number of QRG entries (must be ⋚50)" ],
|
||||||
[ "rxlat", "Receiver fixed latitude"],
|
[ "rxlat", "Receiver fixed latitude"],
|
||||||
[ "rxlon", "Receiver fixed longitude"],
|
[ "rxlon", "Receiver fixed longitude"],
|
||||||
[ "rxalt", "Receiver fixed altitude"],
|
[ "rxalt", "Receiver fixed altitude"],
|
||||||
|
|
|
@ -499,6 +499,7 @@ void ProcessSubframe( byte *subframeBytes, int subframeNumber ) {
|
||||||
}
|
}
|
||||||
memcpy( s->rawData+16*subframeNumber, subframeBytes, 16);
|
memcpy( s->rawData+16*subframeNumber, subframeBytes, 16);
|
||||||
s->valid |= (1ULL << subframeNumber);
|
s->valid |= (1ULL << subframeNumber);
|
||||||
|
Serial.printf("subframe %d; valid: %x\n", subframeNumber, s->valid);
|
||||||
// subframeReceived[subframeNumber] = true; // mark this row of the total subframe as complete
|
// subframeReceived[subframeNumber] = true; // mark this row of the total subframe as complete
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
|
|
@ -80,6 +80,10 @@ void Sonde::defaultConfig() {
|
||||||
|
|
||||||
sondeList = (SondeInfo *)malloc((MAXSONDE+1)*sizeof(SondeInfo));
|
sondeList = (SondeInfo *)malloc((MAXSONDE+1)*sizeof(SondeInfo));
|
||||||
memset(sondeList, 0, (MAXSONDE+1)*sizeof(SondeInfo));
|
memset(sondeList, 0, (MAXSONDE+1)*sizeof(SondeInfo));
|
||||||
|
for(int i=0; i<(MAXSONDE+1); i++) {
|
||||||
|
sondeList[i].freq=400;
|
||||||
|
sondeList[i].type=STYPE_RS41;
|
||||||
|
}
|
||||||
config.touch_thresh = 70;
|
config.touch_thresh = 70;
|
||||||
config.led_pout = -1;
|
config.led_pout = -1;
|
||||||
config.power_pout = -1;
|
config.power_pout = -1;
|
||||||
|
@ -353,14 +357,17 @@ void Sonde::addSonde(float frequency, SondeType type, int active, char *launchsi
|
||||||
Serial.printf("Adding %f - %d - %d - %s\n", frequency, type, active, launchsite);
|
Serial.printf("Adding %f - %d - %d - %s\n", frequency, type, active, launchsite);
|
||||||
// reset all data if type or frequency has changed
|
// reset all data if type or frequency has changed
|
||||||
if(type != sondeList[nSonde].type || frequency != sondeList[nSonde].freq) {
|
if(type != sondeList[nSonde].type || frequency != sondeList[nSonde].freq) {
|
||||||
|
//TODO: Check for potential race condition with decoders
|
||||||
|
// do not clear extra while decoder is potentiall still accessing it!
|
||||||
|
if(sondeList[nSonde].extra) free(sondeList[nSonde].extra);
|
||||||
memset(&sondeList[nSonde], 0, sizeof(SondeInfo));
|
memset(&sondeList[nSonde], 0, sizeof(SondeInfo));
|
||||||
|
sondeList[nSonde].type = type;
|
||||||
|
sondeList[nSonde].typestr[0] = 0;
|
||||||
|
sondeList[nSonde].freq = frequency;
|
||||||
|
memcpy(sondeList[nSonde].rxStat, "\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3", 18); // unknown/undefined
|
||||||
}
|
}
|
||||||
sondeList[nSonde].type = type;
|
|
||||||
sondeList[nSonde].typestr[0] = 0;
|
|
||||||
sondeList[nSonde].freq = frequency;
|
|
||||||
sondeList[nSonde].active = active;
|
sondeList[nSonde].active = active;
|
||||||
strncpy(sondeList[nSonde].launchsite, launchsite, 17);
|
strncpy(sondeList[nSonde].launchsite, launchsite, 17);
|
||||||
memcpy(sondeList[nSonde].rxStat, "\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3", 18); // unknown/undefined
|
|
||||||
nSonde++;
|
nSonde++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -274,7 +274,7 @@ extern struct st_configitems config_list[];
|
||||||
extern const int N_CONFIG;
|
extern const int N_CONFIG;
|
||||||
|
|
||||||
|
|
||||||
#define MAXSONDE 99
|
#define MAXSONDE 50
|
||||||
|
|
||||||
extern int fingerprintValue[];
|
extern int fingerprintValue[];
|
||||||
extern const char *fingerprintText[];
|
extern const char *fingerprintText[];
|
||||||
|
|
Ładowanie…
Reference in New Issue