mirror of
https://github.com/meshtastic/firmware.git
synced 2025-09-12 22:13:06 +00:00
Compare commits
2 Commits
3b0232de1b
...
191ca8ce12
Author | SHA1 | Date | |
---|---|---|---|
![]() |
191ca8ce12 | ||
![]() |
c67aa25d19 |
BIN
.github/meshtastic_logo.png
vendored
Normal file
BIN
.github/meshtastic_logo.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 89 KiB |
31
README.md
31
README.md
@ -1,4 +1,7 @@
|
|||||||
# Meshtastic Firmware
|
<div align="center" markdown="1">
|
||||||
|
|
||||||
|
<img src=".github/meshtastic_logo.png" alt="Meshtastic Logo" width="80"/>
|
||||||
|
<h1>Meshtastic Firmware</h1>
|
||||||
|
|
||||||

|

|
||||||
[](https://github.com/meshtastic/firmware/actions/workflows/ci.yml)
|
[](https://github.com/meshtastic/firmware/actions/workflows/ci.yml)
|
||||||
@ -6,13 +9,31 @@
|
|||||||
[](https://opencollective.com/meshtastic/)
|
[](https://opencollective.com/meshtastic/)
|
||||||
[](https://vercel.com?utm_source=meshtastic&utm_campaign=oss)
|
[](https://vercel.com?utm_source=meshtastic&utm_campaign=oss)
|
||||||
|
|
||||||
|
<a href="https://trendshift.io/repositories/5524" target="_blank"><img src="https://trendshift.io/api/badge/repositories/5524" alt="meshtastic%2Ffirmware | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<a href="https://meshtastic.org">Website</a>
|
||||||
|
-
|
||||||
|
<a href="https://meshtastic.org/docs/">Documentation</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
This repository contains the device firmware for the Meshtastic project.
|
This repository contains the official device firmware for Meshtastic, an open-source LoRa mesh networking project designed for long-range, low-power communication without relying on internet or cellular infrastructure. The firmware supports various hardware platforms, including ESP32, nRF52, RP2040/RP2350, and Linux-based devices.
|
||||||
|
|
||||||
- **[Building Instructions](https://meshtastic.org/docs/development/firmware/build)**
|
Meshtastic enables text messaging, location sharing, and telemetry over a decentralized mesh network, making it ideal for outdoor adventures, emergency preparedness, and remote operations.
|
||||||
- **[Flashing Instructions](https://meshtastic.org/docs/getting-started/flashing-firmware/)**
|
|
||||||
|
### Get Started
|
||||||
|
|
||||||
|
- 🔧 **[Building Instructions](https://meshtastic.org/docs/development/firmware/build)** – Learn how to compile the firmware from source.
|
||||||
|
- ⚡ **[Flashing Instructions](https://meshtastic.org/docs/getting-started/flashing-firmware/)** – Install or update the firmware on your device.
|
||||||
|
|
||||||
|
Join our community and help improve Meshtastic! 🚀
|
||||||
|
|
||||||
## Stats
|
## Stats
|
||||||
|
|
||||||

|

|
||||||
|
@ -220,7 +220,11 @@ std::string MeshPacketSerializer::JsonSerialize(const meshtastic_MeshPacket *mp,
|
|||||||
if (pb_decode_from_bytes(mp->decoded.payload.bytes, mp->decoded.payload.size, &meshtastic_RouteDiscovery_msg,
|
if (pb_decode_from_bytes(mp->decoded.payload.bytes, mp->decoded.payload.size, &meshtastic_RouteDiscovery_msg,
|
||||||
&scratch)) {
|
&scratch)) {
|
||||||
decoded = &scratch;
|
decoded = &scratch;
|
||||||
JSONArray route; // Route this message took
|
JSONArray route; // Route this message took
|
||||||
|
JSONArray routeBack; // Route this message took back
|
||||||
|
JSONArray snrTowards; // Snr for forward route
|
||||||
|
JSONArray snrBack; // Snr for reverse route
|
||||||
|
|
||||||
// Lambda function for adding a long name to the route
|
// Lambda function for adding a long name to the route
|
||||||
auto addToRoute = [](JSONArray *route, NodeNum num) {
|
auto addToRoute = [](JSONArray *route, NodeNum num) {
|
||||||
char long_name[40] = "Unknown";
|
char long_name[40] = "Unknown";
|
||||||
@ -236,7 +240,24 @@ std::string MeshPacketSerializer::JsonSerialize(const meshtastic_MeshPacket *mp,
|
|||||||
}
|
}
|
||||||
addToRoute(&route, mp->from); // Ended at the original destination (source of response)
|
addToRoute(&route, mp->from); // Ended at the original destination (source of response)
|
||||||
|
|
||||||
|
addToRoute(&routeBack, mp->from); // Started at the original destination (source of response)
|
||||||
|
for (uint8_t i = 0; i < decoded->route_back_count; i++) {
|
||||||
|
addToRoute(&routeBack, decoded->route_back[i]);
|
||||||
|
}
|
||||||
|
addToRoute(&routeBack, mp->to); // Ended at the original transmitter (destination of response)
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < decoded->snr_back_count; i++) {
|
||||||
|
snrBack.push_back(new JSONValue((float)decoded->snr_back[i] / 4));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < decoded->snr_towards_count; i++) {
|
||||||
|
snrTowards.push_back(new JSONValue((float)decoded->snr_towards[i] / 4));
|
||||||
|
}
|
||||||
|
|
||||||
msgPayload["route"] = new JSONValue(route);
|
msgPayload["route"] = new JSONValue(route);
|
||||||
|
msgPayload["route_back"] = new JSONValue(routeBack);
|
||||||
|
msgPayload["snr_back"] = new JSONValue(snrBack);
|
||||||
|
msgPayload["snr_towards"] = new JSONValue(snrTowards);
|
||||||
jsonObj["payload"] = new JSONValue(msgPayload);
|
jsonObj["payload"] = new JSONValue(msgPayload);
|
||||||
} else if (shouldLog) {
|
} else if (shouldLog) {
|
||||||
LOG_ERROR(errStr, msgType.c_str());
|
LOG_ERROR(errStr, msgType.c_str());
|
||||||
|
Loading…
Reference in New Issue
Block a user