Compare commits

..

No commits in common. "653aa176d63a5c934ebcb3cafc6abb4ca5b41ead" and "9112fa481bf68ae89e8703efa9fc131fdd8efd32" have entirely different histories.

9 changed files with 19 additions and 36 deletions

View File

@ -53,7 +53,7 @@ IF EXIST %FILENAME% IF x%FILENAME:update=%==x%FILENAME% (
%ESPTOOL_CMD% --baud 115200 write_flash 0x260000 bleota-s3.bin %ESPTOOL_CMD% --baud 115200 write_flash 0x260000 bleota-s3.bin
) )
IF %WEB_APP%==1 ( IF %WEB_APP%==1 (
for %%f in (littlefswebui-*.bin) do ( for %%f in (littlefsweb-*.bin) do (
%ESPTOOL_CMD% --baud 115200 write_flash 0x300000 %%f %ESPTOOL_CMD% --baud 115200 write_flash 0x300000 %%f
) )
) else ( ) else (

View File

@ -85,7 +85,7 @@ if [ -f "${FILENAME}" ] && [ -n "${FILENAME##*"update"*}" ]; then
$ESPTOOL_CMD write_flash 0x260000 bleota-s3.bin $ESPTOOL_CMD write_flash 0x260000 bleota-s3.bin
fi fi
if [ "$WEB_APP" = true ]; then if [ "$WEB_APP" = true ]; then
$ESPTOOL_CMD write_flash 0x300000 littlefswebui-*.bin $ESPTOOL_CMD write_flash 0x300000 littlefsweb-*.bin
else else
$ESPTOOL_CMD write_flash 0x300000 littlefs-*.bin $ESPTOOL_CMD write_flash 0x300000 littlefs-*.bin
fi fi

View File

@ -23,7 +23,7 @@ uint32_t printWPL(char *buf, size_t bufsz, const meshtastic_PositionLite &pos, c
{ {
GeoCoord geoCoord(pos.latitude_i, pos.longitude_i, pos.altitude); GeoCoord geoCoord(pos.latitude_i, pos.longitude_i, pos.altitude);
char type = isCaltopoMode ? 'P' : 'N'; char type = isCaltopoMode ? 'P' : 'N';
uint32_t len = snprintf(buf, bufsz, "\r\n$G%cWPL,%02d%07.4f,%c,%03d%07.4f,%c,%s", type, geoCoord.getDMSLatDeg(), uint32_t len = snprintf(buf, bufsz, "$G%cWPL,%02d%07.4f,%c,%03d%07.4f,%c,%s", type, geoCoord.getDMSLatDeg(),
(abs(geoCoord.getLatitude()) - geoCoord.getDMSLatDeg() * 1e+7) * 6e-6, geoCoord.getDMSLatCP(), (abs(geoCoord.getLatitude()) - geoCoord.getDMSLatDeg() * 1e+7) * 6e-6, geoCoord.getDMSLatCP(),
geoCoord.getDMSLonDeg(), (abs(geoCoord.getLongitude()) - geoCoord.getDMSLonDeg() * 1e+7) * 6e-6, geoCoord.getDMSLonDeg(), (abs(geoCoord.getLongitude()) - geoCoord.getDMSLonDeg() * 1e+7) * 6e-6,
geoCoord.getDMSLonCP(), name); geoCoord.getDMSLonCP(), name);

View File

@ -62,11 +62,7 @@ static void onNetworkConnected()
LOG_INFO("Start WiFi network services"); LOG_INFO("Start WiFi network services");
// start mdns // start mdns
if ( if (!MDNS.begin("Meshtastic")) {
#ifdef ARCH_RP2040
!moduleConfig.mqtt.enabled && // MDNS is not supported when MQTT is enabled on ARCH_RP2040
#endif
!MDNS.begin("Meshtastic")) {
LOG_ERROR("Error setting up MDNS responder!"); LOG_ERROR("Error setting up MDNS responder!");
} else { } else {
LOG_INFO("mDNS Host: Meshtastic.local"); LOG_INFO("mDNS Host: Meshtastic.local");

View File

@ -204,11 +204,9 @@ int32_t SerialModule::runOnce()
lastNmeaTime = millis(); lastNmeaTime = millis();
uint32_t readIndex = 0; uint32_t readIndex = 0;
const meshtastic_NodeInfoLite *tempNodeInfo = nodeDB->readNextMeshNode(readIndex); const meshtastic_NodeInfoLite *tempNodeInfo = nodeDB->readNextMeshNode(readIndex);
while (tempNodeInfo != NULL) { while (tempNodeInfo != NULL && tempNodeInfo->has_user && hasValidPosition(tempNodeInfo)) {
if (tempNodeInfo->has_user && hasValidPosition(tempNodeInfo)) {
printWPL(outbuf, sizeof(outbuf), tempNodeInfo->position, tempNodeInfo->user.long_name, true); printWPL(outbuf, sizeof(outbuf), tempNodeInfo->position, tempNodeInfo->user.long_name, true);
serialPrint->printf("%s", outbuf); serialPrint->printf("%s", outbuf);
}
tempNodeInfo = nodeDB->readNextMeshNode(readIndex); tempNodeInfo = nodeDB->readNextMeshNode(readIndex);
} }
} }

View File

@ -77,10 +77,9 @@ meshtastic_MeshPacket *DeviceTelemetryModule::allocReply()
// Check for a request for device metrics // Check for a request for device metrics
if (decoded->which_variant == meshtastic_Telemetry_device_metrics_tag) { if (decoded->which_variant == meshtastic_Telemetry_device_metrics_tag) {
LOG_INFO("Device telemetry reply to request"); LOG_INFO("Device telemetry reply to request");
return allocDataProtobuf(getDeviceTelemetry());
} else if (decoded->which_variant == meshtastic_Telemetry_local_stats_tag) { meshtastic_Telemetry telemetry = getDeviceTelemetry();
LOG_INFO("Device telemetry reply w/ LocalStats to request"); return allocDataProtobuf(telemetry);
return allocDataProtobuf(getLocalStatsTelemetry());
} }
} }
return NULL; return NULL;
@ -113,7 +112,7 @@ meshtastic_Telemetry DeviceTelemetryModule::getDeviceTelemetry()
return t; return t;
} }
meshtastic_Telemetry DeviceTelemetryModule::getLocalStatsTelemetry() void DeviceTelemetryModule::sendLocalStatsToPhone()
{ {
meshtastic_Telemetry telemetry = meshtastic_Telemetry_init_zero; meshtastic_Telemetry telemetry = meshtastic_Telemetry_init_zero;
telemetry.which_variant = meshtastic_Telemetry_local_stats_tag; telemetry.which_variant = meshtastic_Telemetry_local_stats_tag;
@ -143,12 +142,7 @@ meshtastic_Telemetry DeviceTelemetryModule::getLocalStatsTelemetry()
LOG_INFO("num_packets_tx=%i, num_packets_rx=%i, num_packets_rx_bad=%i", telemetry.variant.local_stats.num_packets_tx, LOG_INFO("num_packets_tx=%i, num_packets_rx=%i, num_packets_rx_bad=%i", telemetry.variant.local_stats.num_packets_tx,
telemetry.variant.local_stats.num_packets_rx, telemetry.variant.local_stats.num_packets_rx_bad); telemetry.variant.local_stats.num_packets_rx, telemetry.variant.local_stats.num_packets_rx_bad);
return telemetry; meshtastic_MeshPacket *p = allocDataProtobuf(telemetry);
}
void DeviceTelemetryModule::sendLocalStatsToPhone()
{
meshtastic_MeshPacket *p = allocDataProtobuf(getLocalStatsTelemetry());
p->to = NODENUM_BROADCAST; p->to = NODENUM_BROADCAST;
p->decoded.want_response = false; p->decoded.want_response = false;
p->priority = meshtastic_MeshPacket_Priority_BACKGROUND; p->priority = meshtastic_MeshPacket_Priority_BACKGROUND;

View File

@ -42,8 +42,6 @@ class DeviceTelemetryModule : private concurrency::OSThread, public ProtobufModu
private: private:
meshtastic_Telemetry getDeviceTelemetry(); meshtastic_Telemetry getDeviceTelemetry();
meshtastic_Telemetry getLocalStatsTelemetry();
void sendLocalStatsToPhone(); void sendLocalStatsToPhone();
uint32_t sendToPhoneIntervalMs = SECONDS_IN_MINUTE * 1000; // Send to phone every minute uint32_t sendToPhoneIntervalMs = SECONDS_IN_MINUTE * 1000; // Send to phone every minute
uint32_t sendStatsToPhoneIntervalMs = 15 * SECONDS_IN_MINUTE * 1000; // Send stats to phone every 15 minutes uint32_t sendStatsToPhoneIntervalMs = 15 * SECONDS_IN_MINUTE * 1000; // Send stats to phone every 15 minutes

View File

@ -545,11 +545,9 @@ void MQTT::onSend(const meshtastic_MeshPacket &mp_encrypted, const meshtastic_Me
// mp_decoded will not be decoded when it's PKI encrypted and not directed to us // mp_decoded will not be decoded when it's PKI encrypted and not directed to us
if (mp_decoded.which_payload_variant == meshtastic_MeshPacket_decoded_tag) { if (mp_decoded.which_payload_variant == meshtastic_MeshPacket_decoded_tag) {
// For uplinking other's packets, check if it's not OK to MQTT or if it's an older packet without the bitfield
bool dontUplink = !mp_decoded.decoded.has_bitfield ||
(mp_decoded.decoded.has_bitfield && !(mp_decoded.decoded.bitfield & BITFIELD_OK_TO_MQTT_MASK));
// check for the lowest bit of the data bitfield set false, and the use of one of the default keys. // check for the lowest bit of the data bitfield set false, and the use of one of the default keys.
if (!isFromUs(&mp_decoded) && !isMqttServerAddressPrivate && dontUplink && if (!isFromUs(&mp_decoded) && !isMqttServerAddressPrivate && mp_decoded.decoded.has_bitfield &&
!(mp_decoded.decoded.bitfield & BITFIELD_OK_TO_MQTT_MASK) &&
(ch.settings.psk.size < 2 || (ch.settings.psk.size == 16 && memcmp(ch.settings.psk.bytes, defaultpsk, 16)) || (ch.settings.psk.size < 2 || (ch.settings.psk.size == 16 && memcmp(ch.settings.psk.bytes, defaultpsk, 16)) ||
(ch.settings.psk.size == 32 && memcmp(ch.settings.psk.bytes, eventpsk, 32)))) { (ch.settings.psk.size == 32 && memcmp(ch.settings.psk.bytes, eventpsk, 32)))) {
LOG_INFO("MQTT onSend - Not forwarding packet due to DontMqttMeBro flag"); LOG_INFO("MQTT onSend - Not forwarding packet due to DontMqttMeBro flag");

View File

@ -36,13 +36,12 @@
#define TOUCH_I2C_PORT 0 #define TOUCH_I2C_PORT 0
#define TOUCH_SLAVE_ADDRESS 0x48 #define TOUCH_SLAVE_ADDRESS 0x48
// in future, we may want to add a buzzer and add all sensors to the indicator via a data protocol for now only GPS is supported // Buzzer
// // Buzzer #define PIN_BUZZER 19
// #define PIN_BUZZER 19
#define GPS_RX_PIN 20 #define HAS_GPS 0
#define GPS_TX_PIN 19 #undef GPS_RX_PIN
#define HAS_GPS 1 #undef GPS_TX_PIN
#define USE_SX1262 #define USE_SX1262
#define USE_SX1268 #define USE_SX1268