From 8da577a3138899314dbf8abb81bff0bd28ca1614 Mon Sep 17 00:00:00 2001 From: "Hans P. Reiser" Date: Sun, 28 Apr 2019 13:29:53 +0200 Subject: [PATCH] version info in version.h, some code formatting (arduino style) --- RX_FSK/RX_FSK.ino | 301 ++++++++++++++++++++++++---------------------- 1 file changed, 154 insertions(+), 147 deletions(-) diff --git a/RX_FSK/RX_FSK.ino b/RX_FSK/RX_FSK.ino index b141cf8..ed74869 100644 --- a/RX_FSK/RX_FSK.ino +++ b/RX_FSK/RX_FSK.ino @@ -10,6 +10,7 @@ #include #include #include +#include "version.h" // UNCOMMENT one of the constructor lines below U8X8_SSD1306_128X64_NONAME_SW_I2C *u8x8 = NULL; // initialize later after reading config file @@ -142,7 +143,7 @@ const char *handleQRGPost(AsyncWebServerRequest *request) { Serial.println(request->getParam(i)->name().c_str()); } #endif - for(int i=1; i<=sonde.config.maxsonde; i++) { + for (int i = 1; i <= sonde.config.maxsonde; i++) { snprintf(label, 10, "A%d", i); AsyncWebParameter *active = request->getParam(label, true); snprintf(label, 10, "F%d", i); @@ -512,9 +513,9 @@ void setup() Serial.println("An Error has occurred while mounting SPIFFS"); return; } - - setupConfigData(); // configuration must be read first due to OLED ports!!! - LORA_LED = sonde.config.led_pout; + + setupConfigData(); // configuration must be read first due to OLED ports!!! + LORA_LED = sonde.config.led_pout; u8x8 = new U8X8_SSD1306_128X64_NONAME_SW_I2C(/* clock=*/ sonde.config.oled_scl, /* data=*/ sonde.config.oled_sda, /* reset=*/ sonde.config.oled_rst); // Unbuffered, basic graphics, software I2C u8x8->begin(); @@ -523,9 +524,11 @@ void setup() u8x8->clear(); u8x8->setFont(u8x8_font_7x14_1x2_r); - u8x8->drawString(1, 1, "RDZ_TTGO_SONDE"); - u8x8->drawString(2, 3, "devel20190426"); - u8x8->drawString(1, 5, "Mods by DL2MF"); + u8x8->drawString(8 - strlen(version_name) / 2, 1, version_name); + u8x8->drawString(8 - strlen(version_id) / 2, 3, version_id); + u8x8->setFont(u8x8_font_chroma48medium8_r); + u8x8->drawString(0, 5, "by Hansi, DL9RDZ"); + u8x8->drawString(1, 6, "Mods by DL2MF"); delay(3000); sonde.clearDisplay(); @@ -535,46 +538,46 @@ void setup() // == show initial values from config.txt ========================= // if (sonde.config.debug == 1) { - u8x8->setFont(u8x8_font_chroma48medium8_r); - u8x8->drawString(0, 0, "Config:"); + u8x8->setFont(u8x8_font_chroma48medium8_r); + u8x8->drawString(0, 0, "Config:"); - delay(500); - itoa(sonde.config.oled_sda, buf, 10); - u8x8->drawString(0, 1, " SDA:"); - u8x8->drawString(6, 1, buf); + delay(500); + itoa(sonde.config.oled_sda, buf, 10); + u8x8->drawString(0, 1, " SDA:"); + u8x8->drawString(6, 1, buf); - delay(500); - itoa(sonde.config.oled_scl, buf, 10); - u8x8->drawString(0, 2, " SCL:"); - u8x8->drawString(6, 2, buf); + delay(500); + itoa(sonde.config.oled_scl, buf, 10); + u8x8->drawString(0, 2, " SCL:"); + u8x8->drawString(6, 2, buf); - delay(500); - itoa(sonde.config.oled_rst, buf, 10); - u8x8->drawString(0, 3, " RST:"); - u8x8->drawString(6, 3, buf); + delay(500); + itoa(sonde.config.oled_rst, buf, 10); + u8x8->drawString(0, 3, " RST:"); + u8x8->drawString(6, 3, buf); - delay(1000); - itoa(sonde.config.led_pout, buf, 10); - u8x8->drawString(0, 4, " LED:"); - u8x8->drawString(6, 4, buf); + delay(1000); + itoa(sonde.config.led_pout, buf, 10); + u8x8->drawString(0, 4, " LED:"); + u8x8->drawString(6, 4, buf); - delay(500); - itoa(sonde.config.spectrum, buf, 10); - u8x8->drawString(0, 5, " SPEC:"); - u8x8->drawString(6, 5, buf); + delay(500); + itoa(sonde.config.spectrum, buf, 10); + u8x8->drawString(0, 5, " SPEC:"); + u8x8->drawString(6, 5, buf); - delay(500); - itoa(sonde.config.maxsonde, buf, 10); - u8x8->drawString(0, 6, " MAX:"); - u8x8->drawString(6, 6, buf); - - delay(5000); - sonde.clearDisplay(); - } - // == show initial values from config.txt ========================= // - + delay(500); + itoa(sonde.config.maxsonde, buf, 10); + u8x8->drawString(0, 6, " MAX:"); + u8x8->drawString(6, 6, buf); -#if 0 + delay(5000); + sonde.clearDisplay(); + } + // == show initial values from config.txt ========================= // + + +#if 0 // == check the radio chip by setting default frequency =========== // if (rs41.setFrequency(402700000) == 0) { Serial.println(F("Setting freq: SUCCESS ")); @@ -705,7 +708,12 @@ void loopScanner() { } } +static int specTimer = 0; + void loopSpectrum() { + int marker = 0; + char buf[5]; + switch (getKeyPress()) { case KP_SHORT: /* move selection of peak, TODO */ sonde.nextConfig(); // TODO: Should be set specific frequency @@ -718,43 +726,38 @@ void loopSpectrum() { case KP_DOUBLE: /* ignore */ break; default: break; } + scanner.scan(); scanner.plotResult(); + if (sonde.config.marker != 0) { + itoa((sonde.config.startfreq), buf, 10); + u8x8->drawString(0, 1, buf); + u8x8->drawString(7, 1, "MHz"); + itoa((sonde.config.startfreq + 6), buf, 10); + u8x8->drawString(13, 1, buf); + } + if (specTimer > 0) { + itoa(specTimer, buf, 10); + if (sonde.config.marker != 0) { + marker = 1; + } + u8x8->drawString(0, 1 + marker, buf); + u8x8->drawString(2, 1 + marker, "Sec."); + specTimer--; + if (specTimer <= 0) { + enterMode(ST_SCANNER); + } + } + delay(1000); } void startSpectrumDisplay() { - int marker=0; - char buf[5]; - sonde.clearDisplay(); u8x8->setFont(u8x8_font_chroma48medium8_r); u8x8->drawString(0, 0, "Spectrum Scan..."); delay(500); - + specTimer = sonde.config.spectrum; enterMode(ST_SPECTRUM); - - for (int i = 0; i < sonde.config.spectrum; i++) { - scanner.scan(); - scanner.plotResult(); - - if (sonde.config.marker != 0) { - itoa((sonde.config.startfreq), buf, 10); - u8x8->drawString(0, 1, buf); - u8x8->drawString(7, 1, "MHz"); - itoa((sonde.config.startfreq + 6), buf, 10); - u8x8->drawString(13, 1, buf); - } - - if (sonde.config.timer != 0) { - itoa((sonde.config.spectrum - i), buf, 10); - if (sonde.config.marker != 0) { - marker = 1; - } - u8x8->drawString(0, 1+marker, buf); - u8x8->drawString(2, 1+marker, "Sec."); - } - } - delay(1000); } String translateEncryptionType(wifi_auth_mode_t encryptionType) { @@ -775,12 +778,12 @@ String translateEncryptionType(wifi_auth_mode_t encryptionType) { } void enableNetwork(bool enable) { - if(enable) { - SetupAsyncServer(); - udp.begin(WiFi.localIP(), LOCALUDPPORT); - connected = true; + if (enable) { + SetupAsyncServer(); + udp.begin(WiFi.localIP(), LOCALUDPPORT); + connected = true; } else { - connected = false; + connected = false; } } @@ -812,11 +815,11 @@ void WiFiEvent(WiFiEvent_t event) break; case SYSTEM_EVENT_STA_DISCONNECTED: Serial.println("Disconnected from WiFi access point"); - if(wifi_state==WIFI_CONNECT){ - // If we get a disconnect event while waiting for connection (as I do sometimes with my FritzBox), - // just start from scratch with WiFi scan - wifi_state = WIFI_DISABLED; - WiFi.disconnect(true); + if (wifi_state == WIFI_CONNECT) { + // If we get a disconnect event while waiting for connection (as I do sometimes with my FritzBox), + // just start from scratch with WiFi scan + wifi_state = WIFI_DISABLED; + WiFi.disconnect(true); } break; case SYSTEM_EVENT_STA_AUTHMODE_CHANGE: @@ -969,18 +972,18 @@ void loopWifiBackground() { } void startAP() { - Serial.println("Activating access point mode"); - wifi_state = WIFI_APMODE; - WiFi.softAP(networks[0].id.c_str(), networks[0].pw.c_str()); - IPAddress myIP = WiFi.softAPIP(); - sonde.setIP(myIP.toString().c_str(), true); - sonde.updateDisplayIP(); - SetupAsyncServer(); + Serial.println("Activating access point mode"); + wifi_state = WIFI_APMODE; + WiFi.softAP(networks[0].id.c_str(), networks[0].pw.c_str()); + IPAddress myIP = WiFi.softAPIP(); + sonde.setIP(myIP.toString().c_str(), true); + sonde.updateDisplayIP(); + SetupAsyncServer(); } void initialMode() { - if(sonde.config.spectrum != 0) { // enable Spectrum in config.txt: spectrum=number_of_seconds - enterMode(ST_SPECTRUM); + if (sonde.config.spectrum != 0) { // enable Spectrum in config.txt: spectrum=number_of_seconds + enterMode(ST_SPECTRUM); } else { enterMode(ST_SCANNER); } @@ -998,10 +1001,10 @@ void loopWifiScan() { wifi_state = WIFI_DISABLED; initialMode(); return; - } + } if (sonde.config.wifi == 1) { // station mode, setup in background wifi_state = WIFI_DISABLED; // will start scanning in wifiLoopBackgroiund - initialMode(); + initialMode(); return; } if (sonde.config.wifi == 2) { // AP mode, setup in background @@ -1020,71 +1023,75 @@ void loopWifiScan() { WiFi.disconnect(true); WiFi.mode(WIFI_STA); - int index=-1; + int index = -1; int n = WiFi.scanNetworks(); for (int i = 0; i < n; i++) { - Serial.print("Network name: "); - Serial.println(WiFi.SSID(i)); - u8x8->drawString(0, 1 + line, WiFi.SSID(i).c_str()); - line = (line + 1) % 5; - Serial.print("Signal strength: "); - Serial.println(WiFi.RSSI(i)); - Serial.print("MAC address: "); - Serial.println(WiFi.BSSIDstr(i)); - Serial.print("Encryption type: "); - String encryptionTypeDescription = translateEncryptionType(WiFi.encryptionType(i)); - Serial.println(encryptionTypeDescription); - Serial.println("-----------------------"); - const char *id = WiFi.SSID(i).c_str(); - int curidx = fetchWifiIndex(id); - if(curidx>=0 && index==-1) { index = curidx; } - } - if(index>=0) { // some network was found - Serial.print("Connecting to: "); Serial.println(fetchWifiSSID(index)); - u8x8->drawString(0, 6, "Conn:"); - u8x8->drawString(6, 6, fetchWifiSSID(index)); - WiFi.begin(fetchWifiSSID(index), fetchWifiPw(index)); - while (WiFi.status() != WL_CONNECTED && cnt<20) { - delay(500); - Serial.print("."); - if(cnt==5) { - // my FritzBox needs this for reconnecting - WiFi.disconnect(true); - delay(500); - WiFi.begin(fetchWifiSSID(index), fetchWifiPw(index)); - delay(500); - } - u8x8->drawString(15, 7, _scan[cnt & 1]); - cnt++; + Serial.print("Network name: "); + Serial.println(WiFi.SSID(i)); + u8x8->drawString(0, 1 + line, WiFi.SSID(i).c_str()); + line = (line + 1) % 5; + Serial.print("Signal strength: "); + Serial.println(WiFi.RSSI(i)); + Serial.print("MAC address: "); + Serial.println(WiFi.BSSIDstr(i)); + Serial.print("Encryption type: "); + String encryptionTypeDescription = translateEncryptionType(WiFi.encryptionType(i)); + Serial.println(encryptionTypeDescription); + Serial.println("-----------------------"); + const char *id = WiFi.SSID(i).c_str(); + int curidx = fetchWifiIndex(id); + if (curidx >= 0 && index == -1) { + index = curidx; + } + } + if (index >= 0) { // some network was found + Serial.print("Connecting to: "); Serial.println(fetchWifiSSID(index)); + u8x8->drawString(0, 6, "Conn:"); + u8x8->drawString(6, 6, fetchWifiSSID(index)); + WiFi.begin(fetchWifiSSID(index), fetchWifiPw(index)); + while (WiFi.status() != WL_CONNECTED && cnt < 20) { + delay(500); + Serial.print("."); + if (cnt == 5) { + // my FritzBox needs this for reconnecting + WiFi.disconnect(true); + delay(500); + WiFi.begin(fetchWifiSSID(index), fetchWifiPw(index)); + delay(500); } - } - if(index<0 || cnt>=15) { // no network found, or connect not successful - WiFi.disconnect(true); - delay(1000); - startAP(); - IPAddress myIP = WiFi.softAPIP(); - Serial.print("AP IP address: "); - Serial.println(myIP); - u8x8->drawString(0, 6, "AP: "); - u8x8->drawString(6, 6, networks[0].id.c_str()); - delay(3000); - } else { - Serial.println(""); - Serial.println("WiFi connected"); - Serial.println("IP address: "); - Serial.println(WiFi.localIP()); - sonde.setIP(WiFi.localIP().toString().c_str(), false); - sonde.updateDisplayIP(); - wifi_state = WIFI_CONNECTED; - delay(3000); - } - SetupAsyncServer(); - initialMode(); + u8x8->drawString(15, 7, _scan[cnt & 1]); + cnt++; + } + } + if (index < 0 || cnt >= 15) { // no network found, or connect not successful + WiFi.disconnect(true); + delay(1000); + startAP(); + IPAddress myIP = WiFi.softAPIP(); + Serial.print("AP IP address: "); + Serial.println(myIP); + u8x8->drawString(0, 6, "AP: "); + u8x8->drawString(6, 6, networks[0].id.c_str()); + delay(3000); + } else { + Serial.println(""); + Serial.println("WiFi connected"); + Serial.println("IP address: "); + Serial.println(WiFi.localIP()); + sonde.setIP(WiFi.localIP().toString().c_str(), false); + sonde.updateDisplayIP(); + wifi_state = WIFI_CONNECTED; + delay(3000); + } + SetupAsyncServer(); + initialMode(); if (sonde.config.spectrum != 0) { // enable Spectrum in config.txt: spectrum=number_of_seconds - startSpectrumDisplay(); + //startSpectrumDisplay(); + enterMode(ST_SPECTRUM); + } else { + enterMode(ST_SCANNER); } - enterMode(ST_SCANNER); } void loop() {