mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-30 19:29:17 +00:00
Merge branch 'master' of github.com:meshtastic/Meshtastic-device
This commit is contained in:
commit
689cec14aa
@ -1 +1 @@
|
|||||||
Subproject commit 863a1d7997ae54471cbeea9baeb877924cc850cf
|
Subproject commit 579a36afded1edca9b0ba94f278ad1f637d56bf5
|
@ -1390,7 +1390,6 @@ void DebugInfo::drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, i
|
|||||||
{
|
{
|
||||||
#if HAS_WIFI
|
#if HAS_WIFI
|
||||||
const char *wifiName = config.network.wifi_ssid;
|
const char *wifiName = config.network.wifi_ssid;
|
||||||
const char *wifiPsw = config.network.wifi_psk;
|
|
||||||
|
|
||||||
displayedNodeNum = 0; // Not currently showing a node pane
|
displayedNodeNum = 0; // Not currently showing a node pane
|
||||||
|
|
||||||
@ -1399,11 +1398,7 @@ void DebugInfo::drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, i
|
|||||||
// The coordinates define the left starting point of the text
|
// The coordinates define the left starting point of the text
|
||||||
display->setTextAlignment(TEXT_ALIGN_LEFT);
|
display->setTextAlignment(TEXT_ALIGN_LEFT);
|
||||||
|
|
||||||
if (isSoftAPForced()) {
|
if (WiFi.status() != WL_CONNECTED) {
|
||||||
display->drawString(x, y, String("WiFi: Software AP (Admin)"));
|
|
||||||
} else if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) {
|
|
||||||
display->drawString(x, y, String("WiFi: Software AP"));
|
|
||||||
} else if (WiFi.status() != WL_CONNECTED) {
|
|
||||||
display->drawString(x, y, String("WiFi: Not Connected"));
|
display->drawString(x, y, String("WiFi: Not Connected"));
|
||||||
} else {
|
} else {
|
||||||
display->drawString(x, y, String("WiFi: Connected"));
|
display->drawString(x, y, String("WiFi: Connected"));
|
||||||
@ -1424,25 +1419,14 @@ void DebugInfo::drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, i
|
|||||||
- WL_NO_SHIELD: assigned when no WiFi shield is present;
|
- WL_NO_SHIELD: assigned when no WiFi shield is present;
|
||||||
|
|
||||||
*/
|
*/
|
||||||
if (WiFi.status() == WL_CONNECTED || isSoftAPForced() || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) {
|
if (WiFi.status() == WL_CONNECTED) {
|
||||||
if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN || isSoftAPForced()) {
|
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "IP: " + String(WiFi.softAPIP().toString().c_str()));
|
|
||||||
|
|
||||||
// Number of connections to the AP. Default max for the esp32 is 4
|
|
||||||
display->drawString(x + SCREEN_WIDTH - display->getStringWidth("(" + String(WiFi.softAPgetStationNum()) + "/4)"),
|
|
||||||
y + FONT_HEIGHT_SMALL * 1, "(" + String(WiFi.softAPgetStationNum()) + "/4)");
|
|
||||||
} else {
|
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "IP: " + String(WiFi.localIP().toString().c_str()));
|
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "IP: " + String(WiFi.localIP().toString().c_str()));
|
||||||
}
|
|
||||||
|
|
||||||
} else if (WiFi.status() == WL_NO_SSID_AVAIL) {
|
} else if (WiFi.status() == WL_NO_SSID_AVAIL) {
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "SSID Not Found");
|
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "SSID Not Found");
|
||||||
} else if (WiFi.status() == WL_CONNECTION_LOST) {
|
} else if (WiFi.status() == WL_CONNECTION_LOST) {
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Connection Lost");
|
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Connection Lost");
|
||||||
} else if (WiFi.status() == WL_CONNECT_FAILED) {
|
} else if (WiFi.status() == WL_CONNECT_FAILED) {
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Connection Failed");
|
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Connection Failed");
|
||||||
//} else if (WiFi.status() == WL_DISCONNECTED) {
|
|
||||||
// display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Disconnected");
|
|
||||||
} else if (WiFi.status() == WL_IDLE_STATUS) {
|
} else if (WiFi.status() == WL_IDLE_STATUS) {
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Idle ... Reconnecting");
|
display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Idle ... Reconnecting");
|
||||||
} else {
|
} else {
|
||||||
@ -1509,24 +1493,8 @@ void DebugInfo::drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isSoftAPForced()) {
|
display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "SSID: " + String(wifiName));
|
||||||
if ((millis() / 10000) % 2) {
|
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "SSID: meshtasticAdmin");
|
|
||||||
} else {
|
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "PWD: 12345678");
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
if (config.network.wifi_mode== Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) {
|
|
||||||
if ((millis() / 10000) % 2) {
|
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "SSID: " + String(wifiName));
|
|
||||||
} else {
|
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "PWD: " + String(wifiPsw));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "SSID: " + String(wifiName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
display->drawString(x, y + FONT_HEIGHT_SMALL * 3, "http://meshtastic.local");
|
display->drawString(x, y + FONT_HEIGHT_SMALL * 3, "http://meshtastic.local");
|
||||||
|
|
||||||
/* Display a heartbeat pixel that blinks every time the frame is redrawn */
|
/* Display a heartbeat pixel that blinks every time the frame is redrawn */
|
||||||
|
10
src/main.cpp
10
src/main.cpp
@ -197,8 +197,6 @@ void setup()
|
|||||||
digitalWrite(RESET_OLED, 1);
|
digitalWrite(RESET_OLED, 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool forceSoftAP = 0;
|
|
||||||
|
|
||||||
#ifdef BUTTON_PIN
|
#ifdef BUTTON_PIN
|
||||||
#ifdef ARCH_ESP32
|
#ifdef ARCH_ESP32
|
||||||
|
|
||||||
@ -211,12 +209,6 @@ void setup()
|
|||||||
delay(10);
|
delay(10);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// BUTTON_PIN is pulled high by a 12k resistor.
|
|
||||||
if (!digitalRead(BUTTON_PIN)) {
|
|
||||||
forceSoftAP = 1;
|
|
||||||
DEBUG_MSG("Setting forceSoftAP = 1\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -452,7 +444,7 @@ void setup()
|
|||||||
|
|
||||||
#ifndef ARCH_PORTDUINO
|
#ifndef ARCH_PORTDUINO
|
||||||
// Initialize Wifi
|
// Initialize Wifi
|
||||||
initWifi(forceSoftAP);
|
initWifi();
|
||||||
|
|
||||||
// Initialize Ethernet
|
// Initialize Ethernet
|
||||||
initEthernet();
|
initEthernet();
|
||||||
|
@ -18,7 +18,7 @@ DeviceState versions used to be defined in the .proto file but really only this
|
|||||||
#define SEGMENT_DEVICESTATE 4
|
#define SEGMENT_DEVICESTATE 4
|
||||||
#define SEGMENT_CHANNELS 8
|
#define SEGMENT_CHANNELS 8
|
||||||
|
|
||||||
#define DEVICESTATE_CUR_VER 19
|
#define DEVICESTATE_CUR_VER 20
|
||||||
#define DEVICESTATE_MIN_VER DEVICESTATE_CUR_VER
|
#define DEVICESTATE_MIN_VER DEVICESTATE_CUR_VER
|
||||||
|
|
||||||
extern DeviceState devicestate;
|
extern DeviceState devicestate;
|
||||||
|
@ -157,7 +157,6 @@ typedef struct _Config_PowerConfig {
|
|||||||
|
|
||||||
typedef struct _Config_NetworkConfig {
|
typedef struct _Config_NetworkConfig {
|
||||||
bool wifi_enabled;
|
bool wifi_enabled;
|
||||||
Config_NetworkConfig_WiFiMode wifi_mode;
|
|
||||||
char wifi_ssid[33];
|
char wifi_ssid[33];
|
||||||
char wifi_psk[64];
|
char wifi_psk[64];
|
||||||
char ntp_server[33];
|
char ntp_server[33];
|
||||||
@ -228,7 +227,7 @@ extern "C" {
|
|||||||
#define Config_DeviceConfig_init_default {_Config_DeviceConfig_Role_MIN, 0, 0}
|
#define Config_DeviceConfig_init_default {_Config_DeviceConfig_Role_MIN, 0, 0}
|
||||||
#define Config_PositionConfig_init_default {0, 0, 0, 0, 0, 0, 0}
|
#define Config_PositionConfig_init_default {0, 0, 0, 0, 0, 0, 0}
|
||||||
#define Config_PowerConfig_init_default {0, 0, 0, 0, 0, 0, 0, 0}
|
#define Config_PowerConfig_init_default {0, 0, 0, 0, 0, 0, 0, 0}
|
||||||
#define Config_NetworkConfig_init_default {0, _Config_NetworkConfig_WiFiMode_MIN, "", "", "", 0, _Config_NetworkConfig_EthMode_MIN, false, Config_NetworkConfig_NetworkConfig_init_default}
|
#define Config_NetworkConfig_init_default {0, "", "", "", 0, _Config_NetworkConfig_EthMode_MIN, false, Config_NetworkConfig_NetworkConfig_init_default}
|
||||||
#define Config_NetworkConfig_NetworkConfig_init_default {0, 0, 0, 0}
|
#define Config_NetworkConfig_NetworkConfig_init_default {0, 0, 0, 0}
|
||||||
#define Config_DisplayConfig_init_default {0, _Config_DisplayConfig_GpsCoordinateFormat_MIN, 0, 0, 0, _Config_DisplayConfig_DisplayUnits_MIN}
|
#define Config_DisplayConfig_init_default {0, _Config_DisplayConfig_GpsCoordinateFormat_MIN, 0, 0, 0, _Config_DisplayConfig_DisplayUnits_MIN}
|
||||||
#define Config_LoRaConfig_init_default {0, _Config_LoRaConfig_ModemPreset_MIN, 0, 0, 0, 0, _Config_LoRaConfig_RegionCode_MIN, 0, 0, 0, 0, 0, {0, 0, 0}}
|
#define Config_LoRaConfig_init_default {0, _Config_LoRaConfig_ModemPreset_MIN, 0, 0, 0, 0, _Config_LoRaConfig_RegionCode_MIN, 0, 0, 0, 0, 0, {0, 0, 0}}
|
||||||
@ -237,7 +236,7 @@ extern "C" {
|
|||||||
#define Config_DeviceConfig_init_zero {_Config_DeviceConfig_Role_MIN, 0, 0}
|
#define Config_DeviceConfig_init_zero {_Config_DeviceConfig_Role_MIN, 0, 0}
|
||||||
#define Config_PositionConfig_init_zero {0, 0, 0, 0, 0, 0, 0}
|
#define Config_PositionConfig_init_zero {0, 0, 0, 0, 0, 0, 0}
|
||||||
#define Config_PowerConfig_init_zero {0, 0, 0, 0, 0, 0, 0, 0}
|
#define Config_PowerConfig_init_zero {0, 0, 0, 0, 0, 0, 0, 0}
|
||||||
#define Config_NetworkConfig_init_zero {0, _Config_NetworkConfig_WiFiMode_MIN, "", "", "", 0, _Config_NetworkConfig_EthMode_MIN, false, Config_NetworkConfig_NetworkConfig_init_zero}
|
#define Config_NetworkConfig_init_zero {0, "", "", "", 0, _Config_NetworkConfig_EthMode_MIN, false, Config_NetworkConfig_NetworkConfig_init_zero}
|
||||||
#define Config_NetworkConfig_NetworkConfig_init_zero {0, 0, 0, 0}
|
#define Config_NetworkConfig_NetworkConfig_init_zero {0, 0, 0, 0}
|
||||||
#define Config_DisplayConfig_init_zero {0, _Config_DisplayConfig_GpsCoordinateFormat_MIN, 0, 0, 0, _Config_DisplayConfig_DisplayUnits_MIN}
|
#define Config_DisplayConfig_init_zero {0, _Config_DisplayConfig_GpsCoordinateFormat_MIN, 0, 0, 0, _Config_DisplayConfig_DisplayUnits_MIN}
|
||||||
#define Config_LoRaConfig_init_zero {0, _Config_LoRaConfig_ModemPreset_MIN, 0, 0, 0, 0, _Config_LoRaConfig_RegionCode_MIN, 0, 0, 0, 0, 0, {0, 0, 0}}
|
#define Config_LoRaConfig_init_zero {0, _Config_LoRaConfig_ModemPreset_MIN, 0, 0, 0, 0, _Config_LoRaConfig_RegionCode_MIN, 0, 0, 0, 0, 0, {0, 0, 0}}
|
||||||
@ -288,7 +287,6 @@ extern "C" {
|
|||||||
#define Config_PowerConfig_ls_secs_tag 7
|
#define Config_PowerConfig_ls_secs_tag 7
|
||||||
#define Config_PowerConfig_min_wake_secs_tag 8
|
#define Config_PowerConfig_min_wake_secs_tag 8
|
||||||
#define Config_NetworkConfig_wifi_enabled_tag 1
|
#define Config_NetworkConfig_wifi_enabled_tag 1
|
||||||
#define Config_NetworkConfig_wifi_mode_tag 2
|
|
||||||
#define Config_NetworkConfig_wifi_ssid_tag 3
|
#define Config_NetworkConfig_wifi_ssid_tag 3
|
||||||
#define Config_NetworkConfig_wifi_psk_tag 4
|
#define Config_NetworkConfig_wifi_psk_tag 4
|
||||||
#define Config_NetworkConfig_ntp_server_tag 5
|
#define Config_NetworkConfig_ntp_server_tag 5
|
||||||
@ -354,7 +352,6 @@ X(a, STATIC, SINGULAR, UINT32, min_wake_secs, 8)
|
|||||||
|
|
||||||
#define Config_NetworkConfig_FIELDLIST(X, a) \
|
#define Config_NetworkConfig_FIELDLIST(X, a) \
|
||||||
X(a, STATIC, SINGULAR, BOOL, wifi_enabled, 1) \
|
X(a, STATIC, SINGULAR, BOOL, wifi_enabled, 1) \
|
||||||
X(a, STATIC, SINGULAR, UENUM, wifi_mode, 2) \
|
|
||||||
X(a, STATIC, SINGULAR, STRING, wifi_ssid, 3) \
|
X(a, STATIC, SINGULAR, STRING, wifi_ssid, 3) \
|
||||||
X(a, STATIC, SINGULAR, STRING, wifi_psk, 4) \
|
X(a, STATIC, SINGULAR, STRING, wifi_psk, 4) \
|
||||||
X(a, STATIC, SINGULAR, STRING, ntp_server, 5) \
|
X(a, STATIC, SINGULAR, STRING, ntp_server, 5) \
|
||||||
@ -433,10 +430,10 @@ extern const pb_msgdesc_t Config_BluetoothConfig_msg;
|
|||||||
#define Config_DisplayConfig_size 20
|
#define Config_DisplayConfig_size 20
|
||||||
#define Config_LoRaConfig_size 68
|
#define Config_LoRaConfig_size 68
|
||||||
#define Config_NetworkConfig_NetworkConfig_size 20
|
#define Config_NetworkConfig_NetworkConfig_size 20
|
||||||
#define Config_NetworkConfig_size 163
|
#define Config_NetworkConfig_size 161
|
||||||
#define Config_PositionConfig_size 30
|
#define Config_PositionConfig_size 30
|
||||||
#define Config_PowerConfig_size 43
|
#define Config_PowerConfig_size 43
|
||||||
#define Config_size 166
|
#define Config_size 164
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
|
@ -144,7 +144,7 @@ extern const pb_msgdesc_t LocalModuleConfig_msg;
|
|||||||
#define LocalModuleConfig_fields &LocalModuleConfig_msg
|
#define LocalModuleConfig_fields &LocalModuleConfig_msg
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
#define LocalConfig_size 361
|
#define LocalConfig_size 359
|
||||||
#define LocalModuleConfig_size 270
|
#define LocalModuleConfig_size 270
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -42,9 +42,6 @@ PB_BIND(FromRadio, FromRadio, 2)
|
|||||||
PB_BIND(ToRadio, ToRadio, 2)
|
PB_BIND(ToRadio, ToRadio, 2)
|
||||||
|
|
||||||
|
|
||||||
PB_BIND(ToRadio_PeerInfo, ToRadio_PeerInfo, AUTO)
|
|
||||||
|
|
||||||
|
|
||||||
PB_BIND(Compressed, Compressed, AUTO)
|
PB_BIND(Compressed, Compressed, AUTO)
|
||||||
|
|
||||||
|
|
||||||
|
@ -243,8 +243,11 @@ typedef enum _LogRecord_Level {
|
|||||||
|
|
||||||
/* Struct definitions */
|
/* Struct definitions */
|
||||||
typedef PB_BYTES_ARRAY_T(237) Compressed_data_t;
|
typedef PB_BYTES_ARRAY_T(237) Compressed_data_t;
|
||||||
|
/* Compressed message payload */
|
||||||
typedef struct _Compressed {
|
typedef struct _Compressed {
|
||||||
|
/* PortNum to determine the how to handle the compressed payload. */
|
||||||
PortNum portnum;
|
PortNum portnum;
|
||||||
|
/* Compressed data. */
|
||||||
Compressed_data_t data;
|
Compressed_data_t data;
|
||||||
} Compressed;
|
} Compressed;
|
||||||
|
|
||||||
@ -425,14 +428,6 @@ typedef struct _RouteDiscovery {
|
|||||||
uint32_t route[8];
|
uint32_t route[8];
|
||||||
} RouteDiscovery;
|
} RouteDiscovery;
|
||||||
|
|
||||||
/* Compressed message payload */
|
|
||||||
typedef struct _ToRadio_PeerInfo {
|
|
||||||
/* PortNum to determine the how to handle the compressed payload. */
|
|
||||||
uint32_t app_version;
|
|
||||||
/* Compressed data. */
|
|
||||||
bool mqtt_gateway;
|
|
||||||
} ToRadio_PeerInfo;
|
|
||||||
|
|
||||||
/* Broadcast when a newly powered mesh node wants to find a node num it can use
|
/* Broadcast when a newly powered mesh node wants to find a node num it can use
|
||||||
Sent from the phone over bluetooth to set the user id for the owner of this node.
|
Sent from the phone over bluetooth to set the user id for the owner of this node.
|
||||||
Also sent from nodes to each other when a new node signs on (so all clients can have this info)
|
Also sent from nodes to each other when a new node signs on (so all clients can have this info)
|
||||||
@ -665,9 +660,6 @@ typedef struct _ToRadio {
|
|||||||
union {
|
union {
|
||||||
/* Send this packet on the mesh */
|
/* Send this packet on the mesh */
|
||||||
MeshPacket packet;
|
MeshPacket packet;
|
||||||
/* Information about the peer, sent after the phone sneds want_config_id.
|
|
||||||
Old clients do not send this, which is fine. */
|
|
||||||
ToRadio_PeerInfo peer_info;
|
|
||||||
/* Phone wants radio to send full node db to the phone, This is
|
/* Phone wants radio to send full node db to the phone, This is
|
||||||
typically the first packet sent to the radio when the phone gets a
|
typically the first packet sent to the radio when the phone gets a
|
||||||
bluetooth connection. The radio will respond by sending back a
|
bluetooth connection. The radio will respond by sending back a
|
||||||
@ -740,7 +732,6 @@ extern "C" {
|
|||||||
#define LogRecord_init_default {"", 0, "", _LogRecord_Level_MIN}
|
#define LogRecord_init_default {"", 0, "", _LogRecord_Level_MIN}
|
||||||
#define FromRadio_init_default {0, 0, {MeshPacket_init_default}}
|
#define FromRadio_init_default {0, 0, {MeshPacket_init_default}}
|
||||||
#define ToRadio_init_default {0, {MeshPacket_init_default}}
|
#define ToRadio_init_default {0, {MeshPacket_init_default}}
|
||||||
#define ToRadio_PeerInfo_init_default {0, 0}
|
|
||||||
#define Compressed_init_default {_PortNum_MIN, {0, {0}}}
|
#define Compressed_init_default {_PortNum_MIN, {0, {0}}}
|
||||||
#define Position_init_zero {0, 0, 0, 0, _Position_LocSource_MIN, _Position_AltSource_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
#define Position_init_zero {0, 0, 0, 0, _Position_LocSource_MIN, _Position_AltSource_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||||
#define User_init_zero {"", "", "", {0}, _HardwareModel_MIN, 0}
|
#define User_init_zero {"", "", "", {0}, _HardwareModel_MIN, 0}
|
||||||
@ -754,7 +745,6 @@ extern "C" {
|
|||||||
#define LogRecord_init_zero {"", 0, "", _LogRecord_Level_MIN}
|
#define LogRecord_init_zero {"", 0, "", _LogRecord_Level_MIN}
|
||||||
#define FromRadio_init_zero {0, 0, {MeshPacket_init_zero}}
|
#define FromRadio_init_zero {0, 0, {MeshPacket_init_zero}}
|
||||||
#define ToRadio_init_zero {0, {MeshPacket_init_zero}}
|
#define ToRadio_init_zero {0, {MeshPacket_init_zero}}
|
||||||
#define ToRadio_PeerInfo_init_zero {0, 0}
|
|
||||||
#define Compressed_init_zero {_PortNum_MIN, {0, {0}}}
|
#define Compressed_init_zero {_PortNum_MIN, {0, {0}}}
|
||||||
|
|
||||||
/* Field tags (for use in manual encoding/decoding) */
|
/* Field tags (for use in manual encoding/decoding) */
|
||||||
@ -811,8 +801,6 @@ extern "C" {
|
|||||||
#define Position_next_update_tag 21
|
#define Position_next_update_tag 21
|
||||||
#define Position_seq_number_tag 22
|
#define Position_seq_number_tag 22
|
||||||
#define RouteDiscovery_route_tag 1
|
#define RouteDiscovery_route_tag 1
|
||||||
#define ToRadio_PeerInfo_app_version_tag 1
|
|
||||||
#define ToRadio_PeerInfo_mqtt_gateway_tag 2
|
|
||||||
#define User_id_tag 1
|
#define User_id_tag 1
|
||||||
#define User_long_name_tag 2
|
#define User_long_name_tag 2
|
||||||
#define User_short_name_tag 3
|
#define User_short_name_tag 3
|
||||||
@ -859,7 +847,6 @@ extern "C" {
|
|||||||
#define FromRadio_moduleConfig_tag 9
|
#define FromRadio_moduleConfig_tag 9
|
||||||
#define FromRadio_channel_tag 10
|
#define FromRadio_channel_tag 10
|
||||||
#define ToRadio_packet_tag 1
|
#define ToRadio_packet_tag 1
|
||||||
#define ToRadio_peer_info_tag 2
|
|
||||||
#define ToRadio_want_config_id_tag 3
|
#define ToRadio_want_config_id_tag 3
|
||||||
#define ToRadio_disconnect_tag 4
|
#define ToRadio_disconnect_tag 4
|
||||||
|
|
||||||
@ -1019,19 +1006,11 @@ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,channel,channel), 10)
|
|||||||
|
|
||||||
#define ToRadio_FIELDLIST(X, a) \
|
#define ToRadio_FIELDLIST(X, a) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (payload_variant,packet,packet), 1) \
|
X(a, STATIC, ONEOF, MESSAGE, (payload_variant,packet,packet), 1) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (payload_variant,peer_info,peer_info), 2) \
|
|
||||||
X(a, STATIC, ONEOF, UINT32, (payload_variant,want_config_id,want_config_id), 3) \
|
X(a, STATIC, ONEOF, UINT32, (payload_variant,want_config_id,want_config_id), 3) \
|
||||||
X(a, STATIC, ONEOF, BOOL, (payload_variant,disconnect,disconnect), 4)
|
X(a, STATIC, ONEOF, BOOL, (payload_variant,disconnect,disconnect), 4)
|
||||||
#define ToRadio_CALLBACK NULL
|
#define ToRadio_CALLBACK NULL
|
||||||
#define ToRadio_DEFAULT NULL
|
#define ToRadio_DEFAULT NULL
|
||||||
#define ToRadio_payload_variant_packet_MSGTYPE MeshPacket
|
#define ToRadio_payload_variant_packet_MSGTYPE MeshPacket
|
||||||
#define ToRadio_payload_variant_peer_info_MSGTYPE ToRadio_PeerInfo
|
|
||||||
|
|
||||||
#define ToRadio_PeerInfo_FIELDLIST(X, a) \
|
|
||||||
X(a, STATIC, SINGULAR, UINT32, app_version, 1) \
|
|
||||||
X(a, STATIC, SINGULAR, BOOL, mqtt_gateway, 2)
|
|
||||||
#define ToRadio_PeerInfo_CALLBACK NULL
|
|
||||||
#define ToRadio_PeerInfo_DEFAULT NULL
|
|
||||||
|
|
||||||
#define Compressed_FIELDLIST(X, a) \
|
#define Compressed_FIELDLIST(X, a) \
|
||||||
X(a, STATIC, SINGULAR, UENUM, portnum, 1) \
|
X(a, STATIC, SINGULAR, UENUM, portnum, 1) \
|
||||||
@ -1051,7 +1030,6 @@ extern const pb_msgdesc_t MyNodeInfo_msg;
|
|||||||
extern const pb_msgdesc_t LogRecord_msg;
|
extern const pb_msgdesc_t LogRecord_msg;
|
||||||
extern const pb_msgdesc_t FromRadio_msg;
|
extern const pb_msgdesc_t FromRadio_msg;
|
||||||
extern const pb_msgdesc_t ToRadio_msg;
|
extern const pb_msgdesc_t ToRadio_msg;
|
||||||
extern const pb_msgdesc_t ToRadio_PeerInfo_msg;
|
|
||||||
extern const pb_msgdesc_t Compressed_msg;
|
extern const pb_msgdesc_t Compressed_msg;
|
||||||
|
|
||||||
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
|
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
|
||||||
@ -1067,7 +1045,6 @@ extern const pb_msgdesc_t Compressed_msg;
|
|||||||
#define LogRecord_fields &LogRecord_msg
|
#define LogRecord_fields &LogRecord_msg
|
||||||
#define FromRadio_fields &FromRadio_msg
|
#define FromRadio_fields &FromRadio_msg
|
||||||
#define ToRadio_fields &ToRadio_msg
|
#define ToRadio_fields &ToRadio_msg
|
||||||
#define ToRadio_PeerInfo_fields &ToRadio_PeerInfo_msg
|
|
||||||
#define Compressed_fields &Compressed_msg
|
#define Compressed_fields &Compressed_msg
|
||||||
|
|
||||||
/* Maximum encoded size of messages (where known) */
|
/* Maximum encoded size of messages (where known) */
|
||||||
@ -1081,7 +1058,6 @@ extern const pb_msgdesc_t Compressed_msg;
|
|||||||
#define Position_size 137
|
#define Position_size 137
|
||||||
#define RouteDiscovery_size 40
|
#define RouteDiscovery_size 40
|
||||||
#define Routing_size 42
|
#define Routing_size 42
|
||||||
#define ToRadio_PeerInfo_size 8
|
|
||||||
#define ToRadio_size 324
|
#define ToRadio_size 324
|
||||||
#define User_size 77
|
#define User_size 77
|
||||||
#define Waypoint_size 156
|
#define Waypoint_size 156
|
||||||
|
@ -75,8 +75,8 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer)
|
|||||||
ResourceNode *nodeAPIv1ToRadio = new ResourceNode("/api/v1/toradio", "PUT", &handleAPIv1ToRadio);
|
ResourceNode *nodeAPIv1ToRadio = new ResourceNode("/api/v1/toradio", "PUT", &handleAPIv1ToRadio);
|
||||||
ResourceNode *nodeAPIv1FromRadio = new ResourceNode("/api/v1/fromradio", "GET", &handleAPIv1FromRadio);
|
ResourceNode *nodeAPIv1FromRadio = new ResourceNode("/api/v1/fromradio", "GET", &handleAPIv1FromRadio);
|
||||||
|
|
||||||
ResourceNode *nodeHotspotApple = new ResourceNode("/hotspot-detect.html", "GET", &handleHotspot);
|
// ResourceNode *nodeHotspotApple = new ResourceNode("/hotspot-detect.html", "GET", &handleHotspot);
|
||||||
ResourceNode *nodeHotspotAndroid = new ResourceNode("/generate_204", "GET", &handleHotspot);
|
// ResourceNode *nodeHotspotAndroid = new ResourceNode("/generate_204", "GET", &handleHotspot);
|
||||||
|
|
||||||
ResourceNode *nodeAdmin = new ResourceNode("/admin", "GET", &handleAdmin);
|
ResourceNode *nodeAdmin = new ResourceNode("/admin", "GET", &handleAdmin);
|
||||||
// ResourceNode *nodeAdminSettings = new ResourceNode("/admin/settings", "GET", &handleAdminSettings);
|
// ResourceNode *nodeAdminSettings = new ResourceNode("/admin/settings", "GET", &handleAdminSettings);
|
||||||
@ -100,8 +100,8 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer)
|
|||||||
secureServer->registerNode(nodeAPIv1ToRadioOptions);
|
secureServer->registerNode(nodeAPIv1ToRadioOptions);
|
||||||
secureServer->registerNode(nodeAPIv1ToRadio);
|
secureServer->registerNode(nodeAPIv1ToRadio);
|
||||||
secureServer->registerNode(nodeAPIv1FromRadio);
|
secureServer->registerNode(nodeAPIv1FromRadio);
|
||||||
secureServer->registerNode(nodeHotspotApple);
|
// secureServer->registerNode(nodeHotspotApple);
|
||||||
secureServer->registerNode(nodeHotspotAndroid);
|
// secureServer->registerNode(nodeHotspotAndroid);
|
||||||
secureServer->registerNode(nodeRestart);
|
secureServer->registerNode(nodeRestart);
|
||||||
secureServer->registerNode(nodeFormUpload);
|
secureServer->registerNode(nodeFormUpload);
|
||||||
secureServer->registerNode(nodeJsonScanNetworks);
|
secureServer->registerNode(nodeJsonScanNetworks);
|
||||||
@ -121,8 +121,8 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer)
|
|||||||
insecureServer->registerNode(nodeAPIv1ToRadioOptions);
|
insecureServer->registerNode(nodeAPIv1ToRadioOptions);
|
||||||
insecureServer->registerNode(nodeAPIv1ToRadio);
|
insecureServer->registerNode(nodeAPIv1ToRadio);
|
||||||
insecureServer->registerNode(nodeAPIv1FromRadio);
|
insecureServer->registerNode(nodeAPIv1FromRadio);
|
||||||
insecureServer->registerNode(nodeHotspotApple);
|
// insecureServer->registerNode(nodeHotspotApple);
|
||||||
insecureServer->registerNode(nodeHotspotAndroid);
|
// insecureServer->registerNode(nodeHotspotAndroid);
|
||||||
insecureServer->registerNode(nodeRestart);
|
insecureServer->registerNode(nodeRestart);
|
||||||
insecureServer->registerNode(nodeFormUpload);
|
insecureServer->registerNode(nodeFormUpload);
|
||||||
insecureServer->registerNode(nodeJsonScanNetworks);
|
insecureServer->registerNode(nodeJsonScanNetworks);
|
||||||
@ -620,12 +620,8 @@ void handleReport(HTTPRequest *req, HTTPResponse *res)
|
|||||||
};
|
};
|
||||||
|
|
||||||
// data->wifi
|
// data->wifi
|
||||||
String ipStr;
|
String ipStr = String(WiFi.localIP().toString());
|
||||||
if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN || isSoftAPForced()) {
|
|
||||||
ipStr = String(WiFi.softAPIP().toString());
|
|
||||||
} else {
|
|
||||||
ipStr = String(WiFi.localIP().toString());
|
|
||||||
}
|
|
||||||
Json jsonObjWifi = Json::object{{"rssi", String(WiFi.RSSI())}, {"ip", ipStr.c_str()}};
|
Json jsonObjWifi = Json::object{{"rssi", String(WiFi.RSSI())}, {"ip", ipStr.c_str()}};
|
||||||
|
|
||||||
// data->memory
|
// data->memory
|
||||||
|
@ -55,10 +55,6 @@ static void handleWebResponse()
|
|||||||
if (isWifiAvailable()) {
|
if (isWifiAvailable()) {
|
||||||
|
|
||||||
if (isWebServerReady) {
|
if (isWebServerReady) {
|
||||||
// We're going to handle the DNS responder here so it
|
|
||||||
// will be ignored by the NRF boards.
|
|
||||||
handleDNSResponse();
|
|
||||||
|
|
||||||
if (secureServer)
|
if (secureServer)
|
||||||
secureServer->loop();
|
secureServer->loop();
|
||||||
insecureServer->loop();
|
insecureServer->loop();
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
#include "mesh/wifi/WiFiServerAPI.h"
|
#include "mesh/wifi/WiFiServerAPI.h"
|
||||||
#include "mqtt/MQTT.h"
|
#include "mqtt/MQTT.h"
|
||||||
#include "target_specific.h"
|
#include "target_specific.h"
|
||||||
#include <DNSServer.h>
|
|
||||||
#include <ESPmDNS.h>
|
#include <ESPmDNS.h>
|
||||||
#include <esp_wifi.h>
|
#include <esp_wifi.h>
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
@ -22,9 +21,6 @@ using namespace concurrency;
|
|||||||
|
|
||||||
static void WiFiEvent(WiFiEvent_t event);
|
static void WiFiEvent(WiFiEvent_t event);
|
||||||
|
|
||||||
// DNS Server for the Captive Portal
|
|
||||||
DNSServer dnsServer;
|
|
||||||
|
|
||||||
// NTP
|
// NTP
|
||||||
WiFiUDP ntpUDP;
|
WiFiUDP ntpUDP;
|
||||||
|
|
||||||
@ -37,8 +33,6 @@ uint8_t wifiDisconnectReason = 0;
|
|||||||
// Stores our hostname
|
// Stores our hostname
|
||||||
char ourHost[16];
|
char ourHost[16];
|
||||||
|
|
||||||
bool forcedSoftAP = 0;
|
|
||||||
|
|
||||||
bool APStartupComplete = 0;
|
bool APStartupComplete = 0;
|
||||||
|
|
||||||
static bool needReconnect = true; // If we create our reconnector, run it once at the beginning
|
static bool needReconnect = true; // If we create our reconnector, run it once at the beginning
|
||||||
@ -88,16 +82,10 @@ static int32_t reconnectWiFi()
|
|||||||
|
|
||||||
static Periodic *wifiReconnect;
|
static Periodic *wifiReconnect;
|
||||||
|
|
||||||
bool isSoftAPForced()
|
|
||||||
{
|
|
||||||
return forcedSoftAP;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isWifiAvailable()
|
bool isWifiAvailable()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (config.network.wifi_enabled && ((config.network.wifi_ssid[0]) || forcedSoftAP)) {
|
if (config.network.wifi_enabled && (config.network.wifi_ssid[0])) {
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
@ -161,70 +149,19 @@ static void onNetworkConnected()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Startup WiFi
|
// Startup WiFi
|
||||||
bool initWifi(bool forceSoftAP)
|
bool initWifi()
|
||||||
{
|
{
|
||||||
forcedSoftAP = forceSoftAP;
|
if (config.network.wifi_enabled && config.network.wifi_ssid[0]) {
|
||||||
|
|
||||||
if (config.network.wifi_enabled && ((config.network.wifi_ssid[0]) || forceSoftAP)) {
|
|
||||||
// if ((radioConfig.has_preferences && config.wifi.ssid[0]) || forceSoftAP) {
|
|
||||||
const char *wifiName = config.network.wifi_ssid;
|
const char *wifiName = config.network.wifi_ssid;
|
||||||
const char *wifiPsw = config.network.wifi_psk;
|
const char *wifiPsw = config.network.wifi_psk;
|
||||||
|
|
||||||
if (forceSoftAP) {
|
|
||||||
DEBUG_MSG("WiFi ... Forced AP Mode\n");
|
|
||||||
} else if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT) {
|
|
||||||
DEBUG_MSG("WiFi ... AP Mode\n");
|
|
||||||
} else if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) {
|
|
||||||
DEBUG_MSG("WiFi ... Hidden AP Mode\n");
|
|
||||||
} else if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_CLIENT) {
|
|
||||||
DEBUG_MSG("WiFi ... Client Mode\n");
|
|
||||||
} else {
|
|
||||||
DEBUG_MSG("WiFi ... WiFi Disabled\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
createSSLCert();
|
createSSLCert();
|
||||||
|
|
||||||
if (!*wifiPsw) // Treat empty password as no password
|
if (!*wifiPsw) // Treat empty password as no password
|
||||||
wifiPsw = NULL;
|
wifiPsw = NULL;
|
||||||
|
|
||||||
if (*wifiName || forceSoftAP) {
|
if (*wifiName) {
|
||||||
if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN || forceSoftAP) {
|
|
||||||
|
|
||||||
IPAddress apIP(192, 168, 42, 1);
|
|
||||||
WiFi.onEvent(WiFiEvent);
|
|
||||||
WiFi.mode(WIFI_AP);
|
|
||||||
|
|
||||||
if (forcedSoftAP) {
|
|
||||||
const char *softAPssid = "meshtasticAdmin";
|
|
||||||
const char *softAPpasswd = "12345678";
|
|
||||||
int ok = WiFi.softAP(softAPssid, softAPpasswd);
|
|
||||||
DEBUG_MSG("Starting (Forced) WIFI AP: ssid=%s, ok=%d\n", softAPssid, ok);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
// If AP is configured to be hidden hidden
|
|
||||||
if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) {
|
|
||||||
|
|
||||||
// The configurations on softAP are from the espresif library
|
|
||||||
int ok = WiFi.softAP(wifiName, wifiPsw, 1, 1, 4);
|
|
||||||
DEBUG_MSG("Starting hidden WIFI AP: ssid=%s, ok=%d\n", wifiName, ok);
|
|
||||||
} else {
|
|
||||||
int ok = WiFi.softAP(wifiName, wifiPsw);
|
|
||||||
DEBUG_MSG("Starting WIFI AP: ssid=%s, ok=%d\n", wifiName, ok);
|
|
||||||
}
|
|
||||||
int ok = WiFi.softAP(wifiName, wifiPsw);
|
|
||||||
DEBUG_MSG("Starting WIFI AP: ssid=%s, ok=%d\n", wifiName, ok);
|
|
||||||
}
|
|
||||||
|
|
||||||
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
|
|
||||||
DEBUG_MSG("MY IP AP ADDRESS: %s\n", WiFi.softAPIP().toString().c_str());
|
|
||||||
|
|
||||||
// This is needed to improve performance.
|
|
||||||
esp_wifi_set_ps(WIFI_PS_NONE); // Disable radio power saving
|
|
||||||
|
|
||||||
dnsServer.start(53, "*", apIP);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
uint8_t dmac[6];
|
uint8_t dmac[6];
|
||||||
getMacAddr(dmac);
|
getMacAddr(dmac);
|
||||||
sprintf(ourHost, "Meshtastic-%02x%02x", dmac[4], dmac[5]);
|
sprintf(ourHost, "Meshtastic-%02x%02x", dmac[4], dmac[5]);
|
||||||
@ -255,7 +192,6 @@ bool initWifi(bool forceSoftAP)
|
|||||||
DEBUG_MSG("JOINING WIFI soon: ssid=%s\n", wifiName);
|
DEBUG_MSG("JOINING WIFI soon: ssid=%s\n", wifiName);
|
||||||
wifiReconnect = new Periodic("WifiConnect", reconnectWiFi);
|
wifiReconnect = new Periodic("WifiConnect", reconnectWiFi);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
DEBUG_MSG("Not using WIFI\n");
|
DEBUG_MSG("Not using WIFI\n");
|
||||||
@ -356,13 +292,6 @@ static void WiFiEvent(WiFiEvent_t event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void handleDNSResponse()
|
|
||||||
{
|
|
||||||
if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN || isSoftAPForced()) {
|
|
||||||
dnsServer.processNextRequest();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t getWifiDisconnectReason()
|
uint8_t getWifiDisconnectReason()
|
||||||
{
|
{
|
||||||
return wifiDisconnectReason;
|
return wifiDisconnectReason;
|
||||||
|
@ -5,19 +5,14 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
#ifdef ARCH_ESP32
|
#ifdef ARCH_ESP32
|
||||||
#include <DNSServer.h>
|
|
||||||
#include <WiFi.h>
|
#include <WiFi.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// @return true if wifi is now in use
|
/// @return true if wifi is now in use
|
||||||
bool initWifi(bool forceSoftAP);
|
bool initWifi();
|
||||||
|
|
||||||
void deinitWifi();
|
void deinitWifi();
|
||||||
|
|
||||||
bool isWifiAvailable();
|
bool isWifiAvailable();
|
||||||
|
|
||||||
void handleDNSResponse();
|
|
||||||
|
|
||||||
bool isSoftAPForced();
|
|
||||||
|
|
||||||
uint8_t getWifiDisconnectReason();
|
uint8_t getWifiDisconnectReason();
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#if (HAS_WIFI == 0)
|
#if (HAS_WIFI == 0)
|
||||||
|
|
||||||
bool initWifi(bool forceSoftAP) {
|
bool initWifi() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user