2023-11-18 08:12:34 -06:00
|
|
|
#pragma once
|
2024-07-28 19:49:10 -05:00
|
|
|
#include <fstream>
|
2023-11-18 08:12:34 -06:00
|
|
|
#include <map>
|
2025-03-30 21:47:15 -04:00
|
|
|
#include <unordered_map>
|
2023-11-18 08:12:34 -06:00
|
|
|
|
2024-12-20 17:34:02 -06:00
|
|
|
#include "platform/portduino/USBHal.h"
|
|
|
|
|
|
2025-03-30 21:47:15 -04:00
|
|
|
// Product strings for auto-configuration
|
|
|
|
|
// {"PRODUCT_STRING", "CONFIG.YAML"}
|
|
|
|
|
// YAML paths are relative to `meshtastic/available.d`
|
|
|
|
|
inline const std::unordered_map<std::string, std::string> configProducts = {{"MESHTOAD", "lora-usb-meshtoad-e22.yaml"},
|
|
|
|
|
{"MESHSTICK", "lora-meshstick-1262.yaml"},
|
|
|
|
|
{"MESHADV-PI", "lora-MeshAdv-900M30S.yaml"},
|
2025-03-31 08:31:54 -04:00
|
|
|
{"MESHADV-MINI", "lora-MeshAdv-Mini-900M22S.yaml"},
|
2025-03-30 21:47:15 -04:00
|
|
|
{"POWERPI", "lora-MeshAdv-900M30S.yaml"}};
|
|
|
|
|
|
2023-12-12 20:27:31 -06:00
|
|
|
enum configNames {
|
2025-01-12 20:40:25 +01:00
|
|
|
default_gpiochip,
|
|
|
|
|
cs_pin,
|
|
|
|
|
cs_line,
|
|
|
|
|
cs_gpiochip,
|
|
|
|
|
irq_pin,
|
|
|
|
|
irq_line,
|
|
|
|
|
irq_gpiochip,
|
|
|
|
|
busy_pin,
|
|
|
|
|
busy_line,
|
|
|
|
|
busy_gpiochip,
|
|
|
|
|
reset_pin,
|
|
|
|
|
reset_line,
|
|
|
|
|
reset_gpiochip,
|
|
|
|
|
txen_pin,
|
|
|
|
|
txen_line,
|
|
|
|
|
txen_gpiochip,
|
|
|
|
|
rxen_pin,
|
|
|
|
|
rxen_line,
|
|
|
|
|
rxen_gpiochip,
|
|
|
|
|
sx126x_ant_sw_pin,
|
|
|
|
|
sx126x_ant_sw_line,
|
|
|
|
|
sx126x_ant_sw_gpiochip,
|
2025-01-29 06:51:26 -05:00
|
|
|
sx126x_max_power,
|
|
|
|
|
sx128x_max_power,
|
|
|
|
|
lr1110_max_power,
|
|
|
|
|
lr1120_max_power,
|
|
|
|
|
rf95_max_power,
|
2023-12-12 20:27:31 -06:00
|
|
|
dio2_as_rf_switch,
|
2024-01-12 02:00:31 -06:00
|
|
|
dio3_tcxo_voltage,
|
2025-03-30 21:47:15 -04:00
|
|
|
use_simradio,
|
|
|
|
|
use_autoconf,
|
2023-12-12 20:27:31 -06:00
|
|
|
use_rf95,
|
2025-01-12 20:40:25 +01:00
|
|
|
use_sx1262,
|
|
|
|
|
use_sx1268,
|
2023-12-18 02:05:04 +02:00
|
|
|
use_sx1280,
|
2024-12-04 13:39:02 +02:00
|
|
|
use_lr1110,
|
|
|
|
|
use_lr1120,
|
|
|
|
|
use_lr1121,
|
2025-01-12 20:40:25 +01:00
|
|
|
use_llcc68,
|
2024-12-20 17:34:02 -06:00
|
|
|
lora_usb_serial_num,
|
|
|
|
|
lora_usb_pid,
|
|
|
|
|
lora_usb_vid,
|
2023-12-12 20:27:31 -06:00
|
|
|
user,
|
2024-01-12 02:00:31 -06:00
|
|
|
spidev,
|
2024-08-01 19:29:49 -05:00
|
|
|
spiSpeed,
|
2024-01-28 20:15:29 -06:00
|
|
|
i2cdev,
|
2023-12-12 20:27:31 -06:00
|
|
|
has_gps,
|
|
|
|
|
touchscreenModule,
|
|
|
|
|
touchscreenCS,
|
|
|
|
|
touchscreenIRQ,
|
2024-04-23 14:18:51 -05:00
|
|
|
touchscreenI2CAddr,
|
2024-04-20 02:27:13 +02:00
|
|
|
touchscreenBusFrequency,
|
|
|
|
|
touchscreenRotate,
|
2024-04-17 14:25:52 -05:00
|
|
|
touchscreenspidev,
|
|
|
|
|
displayspidev,
|
2024-04-20 02:27:13 +02:00
|
|
|
displayBusFrequency,
|
2023-12-12 20:27:31 -06:00
|
|
|
displayPanel,
|
|
|
|
|
displayWidth,
|
|
|
|
|
displayHeight,
|
|
|
|
|
displayCS,
|
|
|
|
|
displayDC,
|
2024-04-20 02:27:13 +02:00
|
|
|
displayRGBOrder,
|
2023-12-12 20:27:31 -06:00
|
|
|
displayBacklight,
|
2024-04-20 02:27:13 +02:00
|
|
|
displayBacklightPWMChannel,
|
|
|
|
|
displayBacklightInvert,
|
2023-12-12 20:27:31 -06:00
|
|
|
displayReset,
|
|
|
|
|
displayRotate,
|
2024-04-20 02:27:13 +02:00
|
|
|
displayOffsetRotate,
|
2024-01-12 02:00:31 -06:00
|
|
|
displayOffsetX,
|
|
|
|
|
displayOffsetY,
|
|
|
|
|
displayInvert,
|
2024-01-22 01:27:06 -06:00
|
|
|
keyboardDevice,
|
2024-12-29 01:31:54 +11:00
|
|
|
pointerDevice,
|
Native Webserver (#3343)
* Added WebServer/WebServices for Native Linux Meshtastic and web gui
* Fix bug in login functionality
* Added customized config of portdunio.ini with LovyannGFX from marelab repro
* Compile Problem resolved with developer version of LovyanGFX.git
* Compile against dev version
* Fixes to fit into main branch
* Update variant.h, main.cpp, .gitignore, WebServer.cpp, esp32s2.ini, WebServer.h, ContentHandler.cpp, rp2040.ini, nrf52.ini, ContentHelper.cpp, Dockerfile, ContentHandler.h, esp32.ini, stm32wl5e.ini
* Added linux pi std /usr/include dir
* Adding /usr/innclude for Linux compile against native libs that are not hadled by platformio
* Review log level changes & translation
* Update Dockerfile
* Fix Typo & VFS ref. Part1
* Fix Typo & VFS ref.
* Dev Version for ulfius web lib
* Update platformio.ini
* Free VFS path string
* Remove unintended changes
* More unintentional changes
* Make the HTTP server optional on native
* Tune-up for Native web defaults
* Don't modify build system yet
* Remove more unneeded changes
---------
Co-authored-by: marc hammermann <marchammermann@googlemail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2024-03-06 16:23:04 -06:00
|
|
|
logoutputlevel,
|
2024-07-28 19:49:10 -05:00
|
|
|
traceFilename,
|
Native Webserver (#3343)
* Added WebServer/WebServices for Native Linux Meshtastic and web gui
* Fix bug in login functionality
* Added customized config of portdunio.ini with LovyannGFX from marelab repro
* Compile Problem resolved with developer version of LovyanGFX.git
* Compile against dev version
* Fixes to fit into main branch
* Update variant.h, main.cpp, .gitignore, WebServer.cpp, esp32s2.ini, WebServer.h, ContentHandler.cpp, rp2040.ini, nrf52.ini, ContentHelper.cpp, Dockerfile, ContentHandler.h, esp32.ini, stm32wl5e.ini
* Added linux pi std /usr/include dir
* Adding /usr/innclude for Linux compile against native libs that are not hadled by platformio
* Review log level changes & translation
* Update Dockerfile
* Fix Typo & VFS ref. Part1
* Fix Typo & VFS ref.
* Dev Version for ulfius web lib
* Update platformio.ini
* Free VFS path string
* Remove unintended changes
* More unintentional changes
* Make the HTTP server optional on native
* Tune-up for Native web defaults
* Don't modify build system yet
* Remove more unneeded changes
---------
Co-authored-by: marc hammermann <marchammermann@googlemail.com>
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2024-03-06 16:23:04 -06:00
|
|
|
webserver,
|
|
|
|
|
webserverport,
|
2024-03-21 09:06:37 -05:00
|
|
|
webserverrootpath,
|
2025-02-01 03:58:58 -05:00
|
|
|
websslkeypath,
|
|
|
|
|
websslcertpath,
|
2024-08-01 19:29:49 -05:00
|
|
|
maxtophone,
|
2024-08-15 17:09:06 -07:00
|
|
|
maxnodes,
|
2024-10-28 21:48:10 -05:00
|
|
|
ascii_logs,
|
2024-12-07 10:29:49 -06:00
|
|
|
config_directory,
|
2025-04-02 07:55:14 -04:00
|
|
|
available_directory,
|
2025-05-15 09:23:37 -05:00
|
|
|
mac_address,
|
|
|
|
|
hostMetrics_interval,
|
|
|
|
|
hostMetrics_channel
|
2023-12-12 20:27:31 -06:00
|
|
|
};
|
2025-05-01 03:50:30 +02:00
|
|
|
enum { no_screen, x11, fb, st7789, st7735, st7735s, st7796, ili9341, ili9342, ili9486, ili9488, hx8357d };
|
2024-04-20 02:27:13 +02:00
|
|
|
enum { no_touchscreen, xpt2046, stmpe610, gt911, ft5x06 };
|
2024-07-28 19:49:10 -05:00
|
|
|
enum { level_error, level_warn, level_info, level_debug, level_trace };
|
2023-11-18 08:12:34 -06:00
|
|
|
|
2023-12-12 20:27:31 -06:00
|
|
|
extern std::map<configNames, int> settingsMap;
|
|
|
|
|
extern std::map<configNames, std::string> settingsStrings;
|
2024-07-28 19:49:10 -05:00
|
|
|
extern std::ofstream traceFile;
|
2024-12-20 17:34:02 -06:00
|
|
|
extern Ch341Hal *ch341Hal;
|
2025-01-12 20:40:25 +01:00
|
|
|
int initGPIOPin(int pinNum, std::string gpioChipname, int line);
|
2024-10-28 21:48:10 -05:00
|
|
|
bool loadConfig(const char *configPath);
|
2024-12-04 13:39:02 +02:00
|
|
|
static bool ends_with(std::string_view str, std::string_view suffix);
|
2024-12-07 10:29:49 -06:00
|
|
|
void getMacAddr(uint8_t *dmac);
|
2025-05-15 09:23:37 -05:00
|
|
|
bool MAC_from_string(std::string mac_str, uint8_t *dmac);
|
|
|
|
|
std::string exec(const char *cmd);
|