mirror of
https://github.com/richonguzman/LoRa_APRS_iGate.git
synced 2026-08-09 02:13:03 +02:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9801545965 | |||
| dd89f56436 | |||
| 27593d8718 | |||
| 008575b422 | |||
| b8eedabe9a | |||
| 7371b8e37a | |||
| 44605e82c2 | |||
| 0360085131 | |||
| 57f720b0d1 | |||
| 3d01ea03c0 |
@@ -77,6 +77,8 @@ jobs:
|
|||||||
chip: esp32c3
|
chip: esp32c3
|
||||||
- name: QRPLabs_LightGateway_1_0
|
- name: QRPLabs_LightGateway_1_0
|
||||||
chip: esp32s3
|
chip: esp32s3
|
||||||
|
- name: XIAO_ESP32S3_WIO_SX1262
|
||||||
|
chip: esp32s3
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@ lib_deps =
|
|||||||
arduino-libraries/NTPClient @ 3.2.1
|
arduino-libraries/NTPClient @ 3.2.1
|
||||||
ayushsharma82/ElegantOTA @ 3.1.5
|
ayushsharma82/ElegantOTA @ 3.1.5
|
||||||
bblanchon/ArduinoJson @ 6.21.3
|
bblanchon/ArduinoJson @ 6.21.3
|
||||||
jgromes/RadioLib @ 6.6.0
|
jgromes/RadioLib @ 7.1.0
|
||||||
mathieucarbou/AsyncTCP @ 3.2.5
|
mathieucarbou/AsyncTCP @ 3.2.5
|
||||||
mathieucarbou/ESPAsyncWebServer @ 3.2.3
|
mathieucarbou/ESPAsyncWebServer @ 3.2.3
|
||||||
mikalhart/TinyGPSPlus @ 1.0.3
|
mikalhart/TinyGPSPlus @ 1.0.3
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<span>List refresh automatically every 15 seconds.</span><br>
|
<span>List refresh automatically every 15 seconds.</span><br>
|
||||||
<small>(Local Time is NPT-Time adjusted with your GMT Offset)</small>
|
<small>(Local Time is NTP-Time adjusted with your GMT Offset)</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr />
|
<hr />
|
||||||
@@ -1310,7 +1310,7 @@
|
|||||||
type="text"
|
type="text"
|
||||||
name="syslog.port"
|
name="syslog.port"
|
||||||
id="syslog.port"
|
id="syslog.port"
|
||||||
placeholder="514"
|
placeholder="1514"
|
||||||
class="form-control"
|
class="form-control"
|
||||||
disabled
|
disabled
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
|
|
||||||
This directory is intended for project header files.
|
|
||||||
|
|
||||||
A header file is a file containing C declarations and macro definitions
|
|
||||||
to be shared between several project source files. You request the use of a
|
|
||||||
header file in your project source file (C, C++, etc) located in `src` folder
|
|
||||||
by including it, with the C preprocessing directive `#include'.
|
|
||||||
|
|
||||||
```src/main.c
|
|
||||||
|
|
||||||
#include "header.h"
|
|
||||||
|
|
||||||
int main (void)
|
|
||||||
{
|
|
||||||
...
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Including a header file produces the same results as copying the header file
|
|
||||||
into each source file that needs it. Such copying would be time-consuming
|
|
||||||
and error-prone. With a header file, the related declarations appear
|
|
||||||
in only one place. If they need to be changed, they can be changed in one
|
|
||||||
place, and programs that include the header file will automatically use the
|
|
||||||
new version when next recompiled. The header file eliminates the labor of
|
|
||||||
finding and changing all the copies as well as the risk that a failure to
|
|
||||||
find one copy will result in inconsistencies within a program.
|
|
||||||
|
|
||||||
In C, the usual convention is to give header files names that end with `.h'.
|
|
||||||
It is most portable to use only letters, digits, dashes, and underscores in
|
|
||||||
header file names, and at most one dot.
|
|
||||||
|
|
||||||
Read more about using header files in official GCC documentation:
|
|
||||||
|
|
||||||
* Include Syntax
|
|
||||||
* Include Operation
|
|
||||||
* Once-Only Headers
|
|
||||||
* Computed Includes
|
|
||||||
|
|
||||||
https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html
|
|
||||||
@@ -48,7 +48,7 @@ ___________________________________________________________________*/
|
|||||||
#include "A7670_utils.h"
|
#include "A7670_utils.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
String versionDate = "2024.11.06";
|
String versionDate = "2024.12.04";
|
||||||
Configuration Config;
|
Configuration Config;
|
||||||
WiFiClient espClient;
|
WiFiClient espClient;
|
||||||
#ifdef HAS_GPS
|
#ifdef HAS_GPS
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ bool Configuration::readFile() {
|
|||||||
|
|
||||||
syslog.active = data["syslog"]["active"] | false;
|
syslog.active = data["syslog"]["active"] | false;
|
||||||
syslog.server = data["syslog"]["server"] | "lora.link9.net";
|
syslog.server = data["syslog"]["server"] | "lora.link9.net";
|
||||||
syslog.port = data["syslog"]["port"] | 514;
|
syslog.port = data["syslog"]["port"] | 1514;
|
||||||
|
|
||||||
tnc.enableServer = data["tnc"]["enableServer"] | false;
|
tnc.enableServer = data["tnc"]["enableServer"] | false;
|
||||||
tnc.enableSerial = data["tnc"]["enableSerial"] | false;
|
tnc.enableSerial = data["tnc"]["enableSerial"] | false;
|
||||||
@@ -293,7 +293,7 @@ void Configuration::init() {
|
|||||||
|
|
||||||
syslog.active = false;
|
syslog.active = false;
|
||||||
syslog.server = "lora.link9.net";
|
syslog.server = "lora.link9.net";
|
||||||
syslog.port = 514;
|
syslog.port = 1514;
|
||||||
|
|
||||||
wxsensor.active = false;
|
wxsensor.active = false;
|
||||||
wxsensor.heightCorrection = 0;
|
wxsensor.heightCorrection = 0;
|
||||||
|
|||||||
@@ -21,9 +21,6 @@
|
|||||||
#else
|
#else
|
||||||
#include <Adafruit_GFX.h>
|
#include <Adafruit_GFX.h>
|
||||||
#include <Adafruit_SSD1306.h>
|
#include <Adafruit_SSD1306.h>
|
||||||
#if defined(HELTEC_V3) || defined(HELTEC_WS)
|
|
||||||
#define OLED_DISPLAY_HAS_RST_PIN
|
|
||||||
#endif
|
|
||||||
#ifdef HELTEC_WSL_V3_DISPLAY
|
#ifdef HELTEC_WSL_V3_DISPLAY
|
||||||
Adafruit_SSD1306 display(128, 64, &Wire1, OLED_RST);
|
Adafruit_SSD1306 display(128, 64, &Wire1, OLED_RST);
|
||||||
#else
|
#else
|
||||||
|
|||||||
+1
-1
@@ -205,7 +205,7 @@ namespace POWER_Utils {
|
|||||||
Wire1.begin(BOARD_I2C_SDA, BOARD_I2C_SCL);
|
Wire1.begin(BOARD_I2C_SDA, BOARD_I2C_SCL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HELTEC_V3) || defined(HELTEC_WS) || defined(LIGHTGATEWAY_1_0) || defined(TTGO_LORA32_T3S3_V1_2)
|
#if defined(HELTEC_V3) || defined(HELTEC_WS) || defined(LIGHTGATEWAY_1_0) || defined(TTGO_LORA32_T3S3_V1_2) || defined(HELTEC_V2)
|
||||||
Wire.begin(OLED_SDA, OLED_SCL);
|
Wire.begin(OLED_SDA, OLED_SCL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+8
-20
@@ -70,34 +70,22 @@ namespace STATION_Utils {
|
|||||||
Utils::println(" ---> Station not Heard for last 30 min (Not Tx)\n");
|
Utils::println(" ---> Station not Heard for last 30 min (Not Tx)\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void clean25SegBuffer() {
|
void clean25SegBuffer() {
|
||||||
if (!packet25SegBuffer.empty()) {
|
if (!packet25SegBuffer.empty() && (millis() - packet25SegBuffer[0].receivedTime) > 25 * 1000) packet25SegBuffer.erase(packet25SegBuffer.begin());
|
||||||
if ((millis() - packet25SegBuffer[0].receivedTime) > 25 * 1000) {
|
|
||||||
packet25SegBuffer.erase(packet25SegBuffer.begin());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check25SegBuffer(const String& station, const String& textMessage) {
|
bool check25SegBuffer(const String& station, const String& textMessage) {
|
||||||
bool shouldBeIgnored = false;
|
|
||||||
if (!packet25SegBuffer.empty()) {
|
if (!packet25SegBuffer.empty()) {
|
||||||
for (int i = 0; i < packet25SegBuffer.size(); i++) {
|
for (int i = 0; i < packet25SegBuffer.size(); i++) {
|
||||||
if (packet25SegBuffer[i].station == station && packet25SegBuffer[i].payload == textMessage) {
|
if (packet25SegBuffer[i].station == station && packet25SegBuffer[i].payload == textMessage) return false;
|
||||||
shouldBeIgnored = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (shouldBeIgnored) {
|
Packet25SegBuffer packet;
|
||||||
return false;
|
packet.receivedTime = millis();
|
||||||
} else {
|
packet.station = station;
|
||||||
Packet25SegBuffer packet;
|
packet.payload = textMessage;
|
||||||
packet.receivedTime = millis();
|
packet25SegBuffer.push_back(packet);
|
||||||
packet.station = station;
|
return true;
|
||||||
packet.payload = textMessage;
|
|
||||||
packet25SegBuffer.push_back(packet);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void processOutputPacketBuffer() {
|
void processOutputPacketBuffer() {
|
||||||
|
|||||||
-11
@@ -1,11 +0,0 @@
|
|||||||
|
|
||||||
This directory is intended for PlatformIO Test Runner and project tests.
|
|
||||||
|
|
||||||
Unit Testing is a software testing method by which individual units of
|
|
||||||
source code, sets of one or more MCU program modules together with associated
|
|
||||||
control data, usage procedures, and operating procedures, are tested to
|
|
||||||
determine whether they are fit for use. Unit testing finds problems early
|
|
||||||
in the development cycle.
|
|
||||||
|
|
||||||
More information about PlatformIO Unit Testing:
|
|
||||||
- https://docs.platformio.org/en/latest/advanced/unit-testing/index.html
|
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#ifndef BOARD_PINOUT_H_
|
||||||
|
#define BOARD_PINOUT_H_
|
||||||
|
|
||||||
|
// LoRa Radio
|
||||||
|
#define HAS_SX1262
|
||||||
|
#define RADIO_SCLK_PIN 7
|
||||||
|
#define RADIO_MISO_PIN 8
|
||||||
|
#define RADIO_MOSI_PIN 9
|
||||||
|
#define RADIO_CS_PIN 41
|
||||||
|
#define RADIO_RST_PIN 42
|
||||||
|
#define RADIO_DIO1_PIN 39
|
||||||
|
#define RADIO_BUSY_PIN 40
|
||||||
|
|
||||||
|
#define RADIO_HAS_RF_SWITCH // DIO02
|
||||||
|
#define RADIO_RF_SWITCH 38
|
||||||
|
|
||||||
|
#define BUTTON_PIN 21
|
||||||
|
#define INTERNAL_LED_PIN 48
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
[env:XIAO_ESP32S3_WIO_SX1262]
|
||||||
|
board = seeed_xiao_esp32s3
|
||||||
|
build_flags =
|
||||||
|
${common.build_flags}
|
||||||
|
${common.usb_flags}
|
||||||
|
-D XIAO_ESP32S3_LORA
|
||||||
|
lib_deps =
|
||||||
|
${common.lib_deps}
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
#define OLED_SDA 4
|
#define OLED_SDA 4
|
||||||
#define OLED_SCL 15
|
#define OLED_SCL 15
|
||||||
#define OLED_RST 16
|
#define OLED_RST 16
|
||||||
|
#define OLED_DISPLAY_HAS_RST_PIN
|
||||||
|
|
||||||
// Aditional Config
|
// Aditional Config
|
||||||
#define INTERNAL_LED_PIN 25
|
#define INTERNAL_LED_PIN 25
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
#define OLED_SDA 17
|
#define OLED_SDA 17
|
||||||
#define OLED_SCL 18
|
#define OLED_SCL 18
|
||||||
#define OLED_RST 21
|
#define OLED_RST 21
|
||||||
|
#define OLED_DISPLAY_HAS_RST_PIN
|
||||||
|
|
||||||
// Aditional Config
|
// Aditional Config
|
||||||
#define INTERNAL_LED_PIN 35
|
#define INTERNAL_LED_PIN 35
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
#define OLED_SDA 4
|
#define OLED_SDA 4
|
||||||
#define OLED_SCL 15
|
#define OLED_SCL 15
|
||||||
#define OLED_RST 16
|
#define OLED_RST 16
|
||||||
|
#define OLED_DISPLAY_HAS_RST_PIN
|
||||||
|
|
||||||
// Aditional Config
|
// Aditional Config
|
||||||
#define INTERNAL_LED_PIN 35
|
#define INTERNAL_LED_PIN 35
|
||||||
|
|||||||
Reference in New Issue
Block a user