mirror of
https://github.com/meshtastic/firmware.git
synced 2025-09-09 21:01:39 +00:00
Merge branch 'master' into illuminace-sensor2
This commit is contained in:
commit
00e354a8ad
6
.github/actions/build-variant/action.yml
vendored
6
.github/actions/build-variant/action.yml
vendored
@ -68,6 +68,12 @@ runs:
|
|||||||
sed -i '/DDEBUG_HEAP/d' ${INI_FILE}
|
sed -i '/DDEBUG_HEAP/d' ${INI_FILE}
|
||||||
done
|
done
|
||||||
|
|
||||||
|
- name: PlatformIO ${{ inputs.arch }} download cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ~/.platformio/.cache
|
||||||
|
key: pio-cache-${{ inputs.arch }}-${{ hashFiles('.github/actions/**', '**.ini') }}
|
||||||
|
|
||||||
- name: Build ${{ inputs.board }}
|
- name: Build ${{ inputs.board }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: ${{ inputs.build-script-path }} ${{ inputs.board }}
|
run: ${{ inputs.build-script-path }} ${{ inputs.board }}
|
||||||
|
13
.github/actions/setup-base/action.yml
vendored
13
.github/actions/setup-base/action.yml
vendored
@ -20,19 +20,16 @@ runs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get -y update --fix-missing
|
sudo apt-get -y update --fix-missing
|
||||||
sudo apt-get install -y cppcheck libbluetooth-dev libgpiod-dev libyaml-cpp-dev
|
sudo apt-get install -y cppcheck libbluetooth-dev libgpiod-dev libyaml-cpp-dev lsb-release
|
||||||
|
|
||||||
- name: Setup Python
|
- name: Setup Python
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: 3.x
|
python-version: 3.x
|
||||||
|
cache: pip
|
||||||
# - name: Cache python libs
|
cache-dependency-path: |
|
||||||
# uses: actions/cache@v4
|
.github/actions/**
|
||||||
# id: cache-pip # needed in if test
|
**.ini
|
||||||
# with:
|
|
||||||
# path: ~/.cache/pip
|
|
||||||
# key: ${{ runner.os }}-pip
|
|
||||||
|
|
||||||
- name: Upgrade python tools
|
- name: Upgrade python tools
|
||||||
shell: bash
|
shell: bash
|
||||||
|
2
.github/workflows/test_native.yml
vendored
2
.github/workflows/test_native.yml
vendored
@ -90,7 +90,7 @@ jobs:
|
|||||||
run: sed -i 's/-DBUILD_EPOCH=$UNIX_TIME/#-DBUILD_EPOCH=$UNIX_TIME/' platformio.ini
|
run: sed -i 's/-DBUILD_EPOCH=$UNIX_TIME/#-DBUILD_EPOCH=$UNIX_TIME/' platformio.ini
|
||||||
|
|
||||||
- name: PlatformIO Tests
|
- name: PlatformIO Tests
|
||||||
run: platformio test -e coverage --junit-output-path testreport.xml
|
run: platformio test -e coverage -v --junit-output-path testreport.xml
|
||||||
|
|
||||||
- name: Save test results
|
- name: Save test results
|
||||||
if: always() # run this step even if previous step failed
|
if: always() # run this step even if previous step failed
|
||||||
|
@ -25,7 +25,7 @@ lib_deps =
|
|||||||
${networking_base.lib_deps}
|
${networking_base.lib_deps}
|
||||||
${radiolib_base.lib_deps}
|
${radiolib_base.lib_deps}
|
||||||
rweather/Crypto@^0.4.0
|
rweather/Crypto@^0.4.0
|
||||||
https://github.com/lovyan03/LovyanGFX.git#1401c28a47646fe00538d487adcb2eb3c72de805
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
https://github.com/pine64/libch341-spi-userspace#a9b17e3452f7fb747000d9b4ad4409155b39f6ef
|
https://github.com/pine64/libch341-spi-userspace#a9b17e3452f7fb747000d9b4ad4409155b39f6ef
|
||||||
|
|
||||||
build_flags =
|
build_flags =
|
||||||
@ -40,4 +40,4 @@ build_flags =
|
|||||||
-lgpiod
|
-lgpiod
|
||||||
-lyaml-cpp
|
-lyaml-cpp
|
||||||
-li2c
|
-li2c
|
||||||
-std=c++17
|
-std=c++17
|
||||||
|
@ -49,7 +49,7 @@ build_flags = -Wno-missing-field-initializers
|
|||||||
-DMESHTASTIC_EXCLUDE_HEALTH_TELEMETRY=1
|
-DMESHTASTIC_EXCLUDE_HEALTH_TELEMETRY=1
|
||||||
-DMESHTASTIC_EXCLUDE_POWERSTRESS=1 ; exclude power stress test module from main firmware
|
-DMESHTASTIC_EXCLUDE_POWERSTRESS=1 ; exclude power stress test module from main firmware
|
||||||
#-DBUILD_EPOCH=$UNIX_TIME
|
#-DBUILD_EPOCH=$UNIX_TIME
|
||||||
;-D OLED_PL
|
#-D OLED_PL=1
|
||||||
|
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
monitor_filters = direct
|
monitor_filters = direct
|
||||||
|
@ -20,9 +20,15 @@
|
|||||||
defined(ST7789_CS) || defined(USE_ST7789) || defined(HX8357_CS)) && \
|
defined(ST7789_CS) || defined(USE_ST7789) || defined(HX8357_CS)) && \
|
||||||
!defined(DISPLAY_FORCE_SMALL_FONTS)
|
!defined(DISPLAY_FORCE_SMALL_FONTS)
|
||||||
// The screen is bigger so use bigger fonts
|
// The screen is bigger so use bigger fonts
|
||||||
|
#ifdef OLED_PL
|
||||||
|
#define FONT_SMALL ArialMT_Plain_16_PL // Height: 19
|
||||||
|
#define FONT_MEDIUM ArialMT_Plain_24_PL // Height: 28
|
||||||
|
#define FONT_LARGE ArialMT_Plain_24_PL // Height: 28
|
||||||
|
#else
|
||||||
#define FONT_SMALL ArialMT_Plain_16 // Height: 19
|
#define FONT_SMALL ArialMT_Plain_16 // Height: 19
|
||||||
#define FONT_MEDIUM ArialMT_Plain_24 // Height: 28
|
#define FONT_MEDIUM ArialMT_Plain_24 // Height: 28
|
||||||
#define FONT_LARGE ArialMT_Plain_24 // Height: 28
|
#define FONT_LARGE ArialMT_Plain_24 // Height: 28
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
#ifdef OLED_PL
|
#ifdef OLED_PL
|
||||||
#define FONT_SMALL ArialMT_Plain_10_PL
|
#define FONT_SMALL ArialMT_Plain_10_PL
|
||||||
@ -41,6 +47,9 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef OLED_PL
|
||||||
|
#define FONT_MEDIUM ArialMT_Plain_16_PL // Height: 19
|
||||||
|
#else
|
||||||
#ifdef OLED_UA
|
#ifdef OLED_UA
|
||||||
#define FONT_MEDIUM ArialMT_Plain_16_UA // Height: 19
|
#define FONT_MEDIUM ArialMT_Plain_16_UA // Height: 19
|
||||||
#else
|
#else
|
||||||
@ -50,6 +59,10 @@
|
|||||||
#define FONT_MEDIUM ArialMT_Plain_16 // Height: 19
|
#define FONT_MEDIUM ArialMT_Plain_16 // Height: 19
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef OLED_PL
|
||||||
|
#define FONT_LARGE ArialMT_Plain_24_PL // Height: 28
|
||||||
|
#else
|
||||||
#ifdef OLED_UA
|
#ifdef OLED_UA
|
||||||
#define FONT_LARGE ArialMT_Plain_24_UA // Height: 28
|
#define FONT_LARGE ArialMT_Plain_24_UA // Height: 28
|
||||||
#else
|
#else
|
||||||
@ -60,6 +73,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#define _fontHeight(font) ((font)[1] + 1) // height is position 1
|
#define _fontHeight(font) ((font)[1] + 1) // height is position 1
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ const uint8_t ArialMT_Plain_10_CS[] PROGMEM = {
|
|||||||
0x20, // First char: 32
|
0x20, // First char: 32
|
||||||
0xE0, // Number of chars: 224
|
0xE0, // Number of chars: 224
|
||||||
// Jump Table:
|
// Jump Table:
|
||||||
0xFF, 0xFF, 0x00, 0x0A, // 32
|
0xFF, 0xFF, 0x00, 0x03, // 32
|
||||||
0x00, 0x00, 0x04, 0x03, // 33
|
0x00, 0x00, 0x04, 0x03, // 33
|
||||||
0x00, 0x04, 0x05, 0x04, // 34
|
0x00, 0x04, 0x05, 0x04, // 34
|
||||||
0x00, 0x09, 0x09, 0x06, // 35
|
0x00, 0x09, 0x09, 0x06, // 35
|
||||||
@ -453,7 +453,7 @@ const uint8_t ArialMT_Plain_16_CS[] PROGMEM = {
|
|||||||
0x20, // First char: 32
|
0x20, // First char: 32
|
||||||
0xE0, // Number of chars: 224
|
0xE0, // Number of chars: 224
|
||||||
// Jump Table:
|
// Jump Table:
|
||||||
0xFF, 0xFF, 0x00, 0x10, // 32
|
0xFF, 0xFF, 0x00, 0x04, // 32
|
||||||
0x00, 0x00, 0x08, 0x04, // 33
|
0x00, 0x00, 0x08, 0x04, // 33
|
||||||
0x00, 0x08, 0x0D, 0x06, // 34
|
0x00, 0x08, 0x0D, 0x06, // 34
|
||||||
0x00, 0x15, 0x1A, 0x0A, // 35
|
0x00, 0x15, 0x1A, 0x0A, // 35
|
||||||
@ -1036,7 +1036,7 @@ const uint8_t ArialMT_Plain_24_CS[] PROGMEM = {
|
|||||||
0x20, // First char: 32
|
0x20, // First char: 32
|
||||||
0xE0, // Number of chars: 224
|
0xE0, // Number of chars: 224
|
||||||
// Jump Table:
|
// Jump Table:
|
||||||
0xFF, 0xFF, 0x00, 0x18, // 32
|
0xFF, 0xFF, 0x00, 0x06, // 32
|
||||||
0x00, 0x00, 0x13, 0x06, // 33
|
0x00, 0x00, 0x13, 0x06, // 33
|
||||||
0x00, 0x13, 0x1A, 0x08, // 34
|
0x00, 0x13, 0x1A, 0x08, // 34
|
||||||
0x00, 0x2D, 0x33, 0x0E, // 35
|
0x00, 0x2D, 0x33, 0x0E, // 35
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,7 @@
|
|||||||
#elif __MBED__
|
#elif __MBED__
|
||||||
#define PROGMEM
|
#define PROGMEM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern const uint8_t ArialMT_Plain_10_PL[] PROGMEM;
|
extern const uint8_t ArialMT_Plain_10_PL[] PROGMEM;
|
||||||
|
extern const uint8_t ArialMT_Plain_16_PL[] PROGMEM;
|
||||||
|
extern const uint8_t ArialMT_Plain_24_PL[] PROGMEM;
|
||||||
#endif
|
#endif
|
@ -92,6 +92,7 @@ NRF52Bluetooth *nrf52Bluetooth = nullptr;
|
|||||||
#include "mesh/raspihttp/PiWebServer.h"
|
#include "mesh/raspihttp/PiWebServer.h"
|
||||||
#include "platform/portduino/PortduinoGlue.h"
|
#include "platform/portduino/PortduinoGlue.h"
|
||||||
#include "platform/portduino/USBHal.h"
|
#include "platform/portduino/USBHal.h"
|
||||||
|
#include <cstdlib>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string>
|
#include <string>
|
||||||
@ -1159,6 +1160,7 @@ void setup()
|
|||||||
#if __has_include(<ulfius.h>)
|
#if __has_include(<ulfius.h>)
|
||||||
if (settingsMap[webserverport] != -1) {
|
if (settingsMap[webserverport] != -1) {
|
||||||
piwebServerThread = new PiWebServerThread();
|
piwebServerThread = new PiWebServerThread();
|
||||||
|
std::atexit([] { delete piwebServerThread; });
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
initApiServer(TCPPort);
|
initApiServer(TCPPort);
|
||||||
@ -1278,4 +1280,4 @@ void loop()
|
|||||||
mainDelay.delay(delayMsec);
|
mainDelay.delay(delayMsec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
@ -297,7 +297,7 @@ uint32_t RadioInterface::getTxDelayMsecWeighted(float snr)
|
|||||||
|
|
||||||
void printPacket(const char *prefix, const meshtastic_MeshPacket *p)
|
void printPacket(const char *prefix, const meshtastic_MeshPacket *p)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_PORT
|
#if defined(DEBUG_PORT) && !defined(DEBUG_MUTE)
|
||||||
std::string out = DEBUG_PORT.mt_sprintf("%s (id=0x%08x fr=0x%08x to=0x%08x, WantAck=%d, HopLim=%d Ch=0x%x", prefix, p->id,
|
std::string out = DEBUG_PORT.mt_sprintf("%s (id=0x%08x fr=0x%08x to=0x%08x, WantAck=%d, HopLim=%d Ch=0x%x", prefix, p->id,
|
||||||
p->from, p->to, p->want_ack, p->hop_limit, p->channel);
|
p->from, p->to, p->want_ack, p->hop_limit, p->channel);
|
||||||
if (p->which_payload_variant == meshtastic_MeshPacket_decoded_tag) {
|
if (p->which_payload_variant == meshtastic_MeshPacket_decoded_tag) {
|
||||||
@ -637,4 +637,4 @@ size_t RadioInterface::beginSending(meshtastic_MeshPacket *p)
|
|||||||
|
|
||||||
sendingPacket = p;
|
sendingPacket = p;
|
||||||
return p->encrypted.size + sizeof(PacketHeader);
|
return p->encrypted.size + sizeof(PacketHeader);
|
||||||
}
|
}
|
@ -501,14 +501,13 @@ bool RadioLibInterface::startSend(meshtastic_MeshPacket *txp)
|
|||||||
powerMon->clearState(meshtastic_PowerMon_State_Lora_TXOn); // Transmitter off now
|
powerMon->clearState(meshtastic_PowerMon_State_Lora_TXOn); // Transmitter off now
|
||||||
startReceive(); // Restart receive mode (because startTransmit failed to put us in xmit mode)
|
startReceive(); // Restart receive mode (because startTransmit failed to put us in xmit mode)
|
||||||
} else {
|
} else {
|
||||||
|
// Must be done AFTER, starting transmit, because startTransmit clears (possibly stale) interrupt pending register
|
||||||
|
// bits
|
||||||
|
enableInterrupt(isrTxLevel0);
|
||||||
lastTxStart = millis();
|
lastTxStart = millis();
|
||||||
printPacket("Started Tx", txp);
|
printPacket("Started Tx", txp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Must be done AFTER, starting transmit, because startTransmit clears (possibly stale) interrupt pending register
|
|
||||||
// bits
|
|
||||||
enableInterrupt(isrTxLevel0);
|
|
||||||
|
|
||||||
return res == RADIOLIB_ERR_NONE;
|
return res == RADIOLIB_ERR_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -82,8 +82,6 @@ char contentTypes[][2][32] = {{".txt", "text/plain"}, {".html", "text/html"
|
|||||||
volatile bool isWebServerReady;
|
volatile bool isWebServerReady;
|
||||||
volatile bool isCertReady;
|
volatile bool isCertReady;
|
||||||
|
|
||||||
HttpAPI webAPI;
|
|
||||||
|
|
||||||
PiWebServerThread *piwebServerThread;
|
PiWebServerThread *piwebServerThread;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -247,7 +245,7 @@ int handleAPIv1ToRadio(const struct _u_request *req, struct _u_response *res, vo
|
|||||||
portduinoVFS->mountpoint(configWeb.rootPath);
|
portduinoVFS->mountpoint(configWeb.rootPath);
|
||||||
|
|
||||||
LOG_DEBUG("Received %d bytes from PUT request", s);
|
LOG_DEBUG("Received %d bytes from PUT request", s);
|
||||||
webAPI.handleToRadio(buffer, s);
|
static_cast<HttpAPI *>(user_data)->handleToRadio(buffer, s);
|
||||||
LOG_DEBUG("end web->radio ");
|
LOG_DEBUG("end web->radio ");
|
||||||
return U_CALLBACK_COMPLETE;
|
return U_CALLBACK_COMPLETE;
|
||||||
}
|
}
|
||||||
@ -279,7 +277,7 @@ int handleAPIv1FromRadio(const struct _u_request *req, struct _u_response *res,
|
|||||||
|
|
||||||
if (valueAll == "true") {
|
if (valueAll == "true") {
|
||||||
while (len) {
|
while (len) {
|
||||||
len = webAPI.getFromRadio(txBuf);
|
len = static_cast<HttpAPI *>(user_data)->getFromRadio(txBuf);
|
||||||
ulfius_set_response_properties(res, U_OPT_STATUS, 200, U_OPT_BINARY_BODY, txBuf, len);
|
ulfius_set_response_properties(res, U_OPT_STATUS, 200, U_OPT_BINARY_BODY, txBuf, len);
|
||||||
const char *tmpa = (const char *)txBuf;
|
const char *tmpa = (const char *)txBuf;
|
||||||
ulfius_set_string_body_response(res, 200, tmpa);
|
ulfius_set_string_body_response(res, 200, tmpa);
|
||||||
@ -289,7 +287,7 @@ int handleAPIv1FromRadio(const struct _u_request *req, struct _u_response *res,
|
|||||||
}
|
}
|
||||||
// Otherwise, just return one protobuf
|
// Otherwise, just return one protobuf
|
||||||
} else {
|
} else {
|
||||||
len = webAPI.getFromRadio(txBuf);
|
len = static_cast<HttpAPI *>(user_data)->getFromRadio(txBuf);
|
||||||
const char *tmpa = (const char *)txBuf;
|
const char *tmpa = (const char *)txBuf;
|
||||||
ulfius_set_binary_body_response(res, 200, tmpa, len);
|
ulfius_set_binary_body_response(res, 200, tmpa, len);
|
||||||
// LOG_DEBUG("\n----webAPI response:");
|
// LOG_DEBUG("\n----webAPI response:");
|
||||||
@ -497,10 +495,10 @@ PiWebServerThread::PiWebServerThread()
|
|||||||
u_map_put(instanceWeb.default_headers, "Access-Control-Allow-Origin", "*");
|
u_map_put(instanceWeb.default_headers, "Access-Control-Allow-Origin", "*");
|
||||||
// Maximum body size sent by the client is 1 Kb
|
// Maximum body size sent by the client is 1 Kb
|
||||||
instanceWeb.max_post_body_size = 1024;
|
instanceWeb.max_post_body_size = 1024;
|
||||||
ulfius_add_endpoint_by_val(&instanceWeb, "GET", PREFIX, "/api/v1/fromradio/*", 1, &handleAPIv1FromRadio, NULL);
|
ulfius_add_endpoint_by_val(&instanceWeb, "GET", PREFIX, "/api/v1/fromradio/*", 1, &handleAPIv1FromRadio, &webAPI);
|
||||||
ulfius_add_endpoint_by_val(&instanceWeb, "OPTIONS", PREFIX, "/api/v1/fromradio/*", 1, &handleAPIv1FromRadio, NULL);
|
ulfius_add_endpoint_by_val(&instanceWeb, "OPTIONS", PREFIX, "/api/v1/fromradio/*", 1, &handleAPIv1FromRadio, &webAPI);
|
||||||
ulfius_add_endpoint_by_val(&instanceWeb, "PUT", PREFIX, "/api/v1/toradio/*", 1, &handleAPIv1ToRadio, configWeb.rootPath);
|
ulfius_add_endpoint_by_val(&instanceWeb, "PUT", PREFIX, "/api/v1/toradio/*", 1, &handleAPIv1ToRadio, &webAPI);
|
||||||
ulfius_add_endpoint_by_val(&instanceWeb, "OPTIONS", PREFIX, "/api/v1/toradio/*", 1, &handleAPIv1ToRadio, NULL);
|
ulfius_add_endpoint_by_val(&instanceWeb, "OPTIONS", PREFIX, "/api/v1/toradio/*", 1, &handleAPIv1ToRadio, &webAPI);
|
||||||
|
|
||||||
// Add callback function to all endpoints for the Web Server
|
// Add callback function to all endpoints for the Web Server
|
||||||
ulfius_add_endpoint_by_val(&instanceWeb, "GET", NULL, "/*", 2, &callback_static_file, &configWeb);
|
ulfius_add_endpoint_by_val(&instanceWeb, "GET", NULL, "/*", 2, &callback_static_file, &configWeb);
|
||||||
@ -525,13 +523,12 @@ PiWebServerThread::~PiWebServerThread()
|
|||||||
u_map_clean(&configWeb.mime_types);
|
u_map_clean(&configWeb.mime_types);
|
||||||
|
|
||||||
ulfius_stop_framework(&instanceWeb);
|
ulfius_stop_framework(&instanceWeb);
|
||||||
ulfius_stop_framework(&instanceWeb);
|
ulfius_clean_instance(&instanceWeb);
|
||||||
free(configWeb.rootPath);
|
free(configWeb.rootPath);
|
||||||
ulfius_clean_instance(&instanceService);
|
free(key_pem);
|
||||||
ulfius_clean_instance(&instanceService);
|
|
||||||
free(cert_pem);
|
free(cert_pem);
|
||||||
LOG_INFO("End framework");
|
LOG_INFO("End framework");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
@ -23,24 +23,6 @@ struct _file_config {
|
|||||||
char *rootPath;
|
char *rootPath;
|
||||||
};
|
};
|
||||||
|
|
||||||
class PiWebServerThread
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
char *key_pem = NULL;
|
|
||||||
char *cert_pem = NULL;
|
|
||||||
// struct _u_map mime_types;
|
|
||||||
std::string webrootpath;
|
|
||||||
|
|
||||||
public:
|
|
||||||
PiWebServerThread();
|
|
||||||
~PiWebServerThread();
|
|
||||||
int CreateSSLCertificate();
|
|
||||||
int CheckSSLandLoad();
|
|
||||||
uint32_t requestRestart = 0;
|
|
||||||
struct _u_instance instanceWeb;
|
|
||||||
struct _u_instance instanceService;
|
|
||||||
};
|
|
||||||
|
|
||||||
class HttpAPI : public PhoneAPI
|
class HttpAPI : public PhoneAPI
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -55,6 +37,24 @@ class HttpAPI : public PhoneAPI
|
|||||||
virtual bool checkIsConnected() override { return true; } // FIXME, be smarter about this
|
virtual bool checkIsConnected() override { return true; } // FIXME, be smarter about this
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class PiWebServerThread
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
char *key_pem = NULL;
|
||||||
|
char *cert_pem = NULL;
|
||||||
|
// struct _u_map mime_types;
|
||||||
|
std::string webrootpath;
|
||||||
|
HttpAPI webAPI;
|
||||||
|
|
||||||
|
public:
|
||||||
|
PiWebServerThread();
|
||||||
|
~PiWebServerThread();
|
||||||
|
int CreateSSLCertificate();
|
||||||
|
int CheckSSLandLoad();
|
||||||
|
uint32_t requestRestart = 0;
|
||||||
|
struct _u_instance instanceWeb;
|
||||||
|
};
|
||||||
|
|
||||||
extern PiWebServerThread *piwebServerThread;
|
extern PiWebServerThread *piwebServerThread;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -9,4 +9,4 @@ build_flags =
|
|||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.8
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
|
@ -11,4 +11,4 @@ build_flags =
|
|||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.8
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
|
@ -10,4 +10,4 @@ build_flags =
|
|||||||
;-D DEBUG_DISABLED ; uncomment this line to disable DEBUG output
|
;-D DEBUG_DISABLED ; uncomment this line to disable DEBUG output
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.8
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
|
7
variants/heltec_wsl_v2.1/platformio.ini
Normal file
7
variants/heltec_wsl_v2.1/platformio.ini
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[env:heltec-wsl-v2_1]
|
||||||
|
extends = esp32_base
|
||||||
|
board = heltec_wireless_stick_lite
|
||||||
|
board_level = extra
|
||||||
|
build_flags =
|
||||||
|
${esp32_base.build_flags} -D PRIVATE_HW -I variants/heltec_wsl_v2.1
|
||||||
|
-DGPS_POWER_TOGGLE ; comment this line to disable triple press function on the user button to turn off gps entirely.
|
29
variants/heltec_wsl_v2.1/variant.h
Normal file
29
variants/heltec_wsl_v2.1/variant.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
#define I2C_SCL SCL
|
||||||
|
#define I2C_SDA SDA
|
||||||
|
|
||||||
|
#define LED_PIN LED
|
||||||
|
|
||||||
|
// active low, powers the Battery reader, but no lora antenna boost (?)
|
||||||
|
// #define VEXT_ENABLE Vext
|
||||||
|
// #define VEXT_ON_VALUE LOW
|
||||||
|
|
||||||
|
#define BUTTON_PIN 0
|
||||||
|
|
||||||
|
#define ADC_CTRL 21
|
||||||
|
#define ADC_CTRL_ENABLED LOW
|
||||||
|
#define BATTERY_PIN 37 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage
|
||||||
|
#define ADC_CHANNEL ADC1_CHANNEL_1
|
||||||
|
// ratio of voltage divider = 3.20 (R1=100k, R2=220k)
|
||||||
|
#define ADC_MULTIPLIER 3.2
|
||||||
|
|
||||||
|
#define USE_RF95 // RFM95/SX127x
|
||||||
|
|
||||||
|
#define LORA_DIO0 26
|
||||||
|
#define LORA_RESET 14
|
||||||
|
#define LORA_DIO1 35
|
||||||
|
#define LORA_DIO2 34
|
||||||
|
|
||||||
|
#define LORA_SCK 5
|
||||||
|
#define LORA_MISO 19
|
||||||
|
#define LORA_MOSI 27
|
||||||
|
#define LORA_CS 18
|
@ -25,4 +25,4 @@ lib_ignore =
|
|||||||
m5stack-core
|
m5stack-core
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.8
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
|
@ -54,7 +54,7 @@ build_src_filter = ${esp32_base.build_src_filter}
|
|||||||
+<../lib/device-ui/locale>
|
+<../lib/device-ui/locale>
|
||||||
+<../lib/device-ui/source>
|
+<../lib/device-ui/source>
|
||||||
lib_deps = ${esp32_base.lib_deps}
|
lib_deps = ${esp32_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.16
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
|
|
||||||
[mesh_tab_xpt2046]
|
[mesh_tab_xpt2046]
|
||||||
extends = mesh_tab_base
|
extends = mesh_tab_base
|
||||||
|
@ -14,4 +14,4 @@ build_flags =
|
|||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.8
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
|
@ -12,4 +12,4 @@ build_src_filter = ${portduino_base.build_src_filter}
|
|||||||
|
|
||||||
[env:coverage]
|
[env:coverage]
|
||||||
extends = env:native
|
extends = env:native
|
||||||
build_flags = -lgcov --coverage -fprofile-abs-path ${env:native.build_flags}
|
build_flags = -lgcov --coverage -fprofile-abs-path -fsanitize=address ${env:native.build_flags}
|
||||||
|
@ -28,6 +28,8 @@ build_flags =
|
|||||||
-DHAL_TIM_MODULE_DISABLED
|
-DHAL_TIM_MODULE_DISABLED
|
||||||
-DHAL_WWDG_MODULE_DISABLED
|
-DHAL_WWDG_MODULE_DISABLED
|
||||||
-DHAL_EXTI_MODULE_DISABLED
|
-DHAL_EXTI_MODULE_DISABLED
|
||||||
|
-DHAL_SAI_MODULE_DISABLED
|
||||||
|
-DHAL_ICACHE_MODULE_DISABLED
|
||||||
-DRADIOLIB_EXCLUDE_SX128X=1
|
-DRADIOLIB_EXCLUDE_SX128X=1
|
||||||
-DRADIOLIB_EXCLUDE_SX127X=1
|
-DRADIOLIB_EXCLUDE_SX127X=1
|
||||||
-DRADIOLIB_EXCLUDE_LR11X0=1
|
-DRADIOLIB_EXCLUDE_LR11X0=1
|
||||||
|
@ -14,6 +14,6 @@ build_flags = ${esp32s3_base.build_flags}
|
|||||||
-Ivariants/t-deck
|
-Ivariants/t-deck
|
||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.9
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
earlephilhower/ESP8266Audio@^1.9.9
|
earlephilhower/ESP8266Audio@^1.9.9
|
||||||
earlephilhower/ESP8266SAM@^1.0.1
|
earlephilhower/ESP8266SAM@^1.0.1
|
||||||
|
@ -12,7 +12,7 @@ build_flags = ${esp32_base.build_flags}
|
|||||||
-DHAS_BMA423=1
|
-DHAS_BMA423=1
|
||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.9
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
lewisxhe/PCF8563_Library@1.0.1
|
lewisxhe/PCF8563_Library@1.0.1
|
||||||
adafruit/Adafruit DRV2605 Library@^1.2.2
|
adafruit/Adafruit DRV2605 Library@^1.2.2
|
||||||
earlephilhower/ESP8266Audio@^1.9.9
|
earlephilhower/ESP8266Audio@^1.9.9
|
||||||
|
@ -11,7 +11,7 @@ build_flags =
|
|||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.8
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
|
|
||||||
[env:tracksenger-lcd]
|
[env:tracksenger-lcd]
|
||||||
extends = esp32s3_base
|
extends = esp32s3_base
|
||||||
@ -26,7 +26,7 @@ build_flags =
|
|||||||
|
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32s3_base.lib_deps}
|
${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.8
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
|
|
||||||
[env:tracksenger-oled]
|
[env:tracksenger-oled]
|
||||||
extends = esp32s3_base
|
extends = esp32s3_base
|
||||||
|
@ -26,7 +26,7 @@ build_flags = ${esp32_base.build_flags}
|
|||||||
build_src_filter = ${esp32_base.build_src_filter} +<../variants/unphone>
|
build_src_filter = ${esp32_base.build_src_filter} +<../variants/unphone>
|
||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@ 1.1.12
|
lovyan03/LovyanGFX@ 1.2.0
|
||||||
https://gitlab.com/hamishcunningham/unphonelibrary#meshtastic@9.0.0
|
https://gitlab.com/hamishcunningham/unphonelibrary#meshtastic@9.0.0
|
||||||
adafruit/Adafruit NeoPixel @ ^1.12.0
|
adafruit/Adafruit NeoPixel @ ^1.12.0
|
||||||
|
|
||||||
@ -72,6 +72,6 @@ build_src_filter = ${esp32_base.build_src_filter} +<../variants/unphone>
|
|||||||
+<../lib/device-ui/source>
|
+<../lib/device-ui/source>
|
||||||
|
|
||||||
lib_deps = ${esp32s3_base.lib_deps}
|
lib_deps = ${esp32s3_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.12
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
https://gitlab.com/hamishcunningham/unphonelibrary#meshtastic@9.0.0
|
https://gitlab.com/hamishcunningham/unphonelibrary#meshtastic@9.0.0
|
||||||
adafruit/Adafruit NeoPixel@1.12.0
|
adafruit/Adafruit NeoPixel@1.12.0
|
||||||
|
@ -28,6 +28,8 @@ build_flags =
|
|||||||
-DHAL_TIM_MODULE_DISABLED
|
-DHAL_TIM_MODULE_DISABLED
|
||||||
-DHAL_WWDG_MODULE_DISABLED
|
-DHAL_WWDG_MODULE_DISABLED
|
||||||
-DHAL_EXTI_MODULE_DISABLED
|
-DHAL_EXTI_MODULE_DISABLED
|
||||||
|
-DHAL_SAI_MODULE_DISABLED
|
||||||
|
-DHAL_ICACHE_MODULE_DISABLED
|
||||||
-DRADIOLIB_EXCLUDE_SX128X=1
|
-DRADIOLIB_EXCLUDE_SX128X=1
|
||||||
-DRADIOLIB_EXCLUDE_SX127X=1
|
-DRADIOLIB_EXCLUDE_SX127X=1
|
||||||
-DRADIOLIB_EXCLUDE_LR11X0=1
|
-DRADIOLIB_EXCLUDE_LR11X0=1
|
||||||
|
@ -8,6 +8,6 @@ build_flags =
|
|||||||
${esp32_base.build_flags} -D WIPHONE -I variants/wiphone
|
${esp32_base.build_flags} -D WIPHONE -I variants/wiphone
|
||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32_base.lib_deps}
|
${esp32_base.lib_deps}
|
||||||
lovyan03/LovyanGFX@^1.1.8
|
lovyan03/LovyanGFX@^1.2.0
|
||||||
sparkfun/SX1509 IO Expander@^3.0.5
|
sparkfun/SX1509 IO Expander@^3.0.5
|
||||||
pololu/APA102@^3.0.0
|
pololu/APA102@^3.0.0
|
||||||
|
Loading…
Reference in New Issue
Block a user