diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9b142441..8c0f0eb1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -78,9 +78,16 @@ jobs: - name: Build everything run: bin/build-all.sh - - name: Store release zip as an artifact + - name: Store binaries as an artifact uses: actions/upload-artifact@v2 with: name: built path: release/archive/firmware-*.zip retention-days: 30 + + - name: Store debugging elf files as an artifact + uses: actions/upload-artifact@v2 + with: + name: debug-elfs + path: release/archive/elfs-*.zip + retention-days: 7 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 47061481..3403a145 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -69,7 +69,7 @@ jobs: env: GITHUB_TOKEN: ${{ github.token }} - - name: Add artifact to release + - name: Add bins to release uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} @@ -77,4 +77,14 @@ jobs: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: release/archive/firmware-${{ steps.version.outputs.version }}.zip asset_name: firmware-${{ steps.version.outputs.version }}.zip - asset_content_type: application/zip \ No newline at end of file + asset_content_type: application/zip + + - name: Add debug elfs to release + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ github.token }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: release/archive/elfs-${{ steps.version.outputs.version }}.zip + asset_name: debug-elfs-${{ steps.version.outputs.version }}.zip + asset_content_type: application/zip \ No newline at end of file diff --git a/bin/build-all.sh b/bin/build-all.sh index e75f92c1..dc614cf6 100755 --- a/bin/build-all.sh +++ b/bin/build-all.sh @@ -10,6 +10,7 @@ BOARDS_ESP32="tlora-v2 tlora-v1 tlora_v1_3 tlora-v2-1-1.6 tbeam heltec-v2.0 helt # FIXME note nrf52840dk build is for some reason only generating a BIN file but not a HEX file nrf52840dk-geeksville is fine BOARDS_NRF52="rak4631 t-echo" +#BOARDS_NRF52="" OUTDIR=release/latest @@ -98,6 +99,9 @@ XML echo Generating $ARCHIVEDIR/firmware-$VERSION.zip rm -f $ARCHIVEDIR/firmware-$VERSION.zip -zip --junk-paths $ARCHIVEDIR/firmware-$VERSION.zip $ARCHIVEDIR/spiffs-$VERSION.bin $OUTDIR/bins/universal/firmware-*-$VERSION.* images/system-info.bin bin/device-install.sh bin/device-update.sh images/system-info.bin bin/device-install.bat bin/device-update.bat +zip --junk-paths $ARCHIVEDIR/firmware-$VERSION.zip $ARCHIVEDIR/spiffs-$VERSION.bin $OUTDIR/bins/universal/firmware-*-$VERSION.* images/system-info.bin bin/device-install.* bin/device-update.* +echo Generating $ARCHIVEDIR/elfs-$VERSION.zip +rm -f $ARCHIVEDIR/elfs-$VERSION.zip +zip --junk-paths $ARCHIVEDIR/elfs-$VERSION.zip $OUTDIR/elfs/universal/firmware-*-$VERSION.* echo BUILT ALL diff --git a/geeksville-private/TODO.md b/geeksville-private/TODO.md index 2e0a1399..7edacb35 100644 --- a/geeksville-private/TODO.md +++ b/geeksville-private/TODO.md @@ -2,10 +2,10 @@ You probably don't care about this section - skip to the next one. -* admin remote nodes reboot sometimes https://github.com/meshtastic/Meshtastic-device/issues/811 +* list portduino on platformio +* add crash logging to flash and use memory pools - admin remote nodes reboot sometimes https://github.com/meshtastic/Meshtastic-device/issues/811 * router mode dropping messages? https://meshtastic.discourse.group/t/router-mode-missing-messages/3329/3 * fix ttgo eink screen -* list portduino on platformio * figure our wss for mqtt.meshtastic - use cloudflare? 2052 ws, 2053 crypt * pine64 lora module * @havealoha fixedposition not working diff --git a/geeksville-private/windows-build-instructions.md b/geeksville-private/windows-build-instructions.md new file mode 100644 index 00000000..9a7ec19e --- /dev/null +++ b/geeksville-private/windows-build-instructions.md @@ -0,0 +1,7 @@ + + +* install python +* install git (including git-bash) +* install platformio +* install vscode +* install https://sourceforge.net/projects/mingw-w64/ (for windows gcc/g++) - you'll need to add the bin directory to your PATH diff --git a/proto b/proto index dfcfba8d..f604be5b 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit dfcfba8d1a6bad4233436c39f0571df878f8d2d2 +Subproject commit f604be5bb2ada77c6205617b500d406b629a44b8 diff --git a/src/RedirectablePrint.cpp b/src/RedirectablePrint.cpp index d88fbe4b..3f920f64 100644 --- a/src/RedirectablePrint.cpp +++ b/src/RedirectablePrint.cpp @@ -5,6 +5,7 @@ #include #include #include +#include /** * A printer that doesn't go anywhere diff --git a/src/mesh/PacketHistory.h b/src/mesh/PacketHistory.h index d390915a..8deee092 100644 --- a/src/mesh/PacketHistory.h +++ b/src/mesh/PacketHistory.h @@ -4,8 +4,6 @@ #include #include -using namespace std; - /// We clear our old flood record five minute after we see the last of it #define FLOOD_EXPIRE_TIME (5 * 60 * 1000L) @@ -23,7 +21,7 @@ struct PacketRecord { class PacketRecordHashFunction { public: - size_t operator()(const PacketRecord &p) const { return (hash()(p.sender)) ^ (hash()(p.id)); } + size_t operator()(const PacketRecord &p) const { return (std::hash()(p.sender)) ^ (std::hash()(p.id)); } }; /// Order packet records by arrival time, we want the oldest packets to be in the front of our heap @@ -54,7 +52,7 @@ class PacketHistory /** FIXME: really should be a std::unordered_set with the key being sender,id. * This would make checking packets in wasSeenRecently faster. */ - vector recentPackets; + std::vector recentPackets; // priority_queue, PacketRecordOrderFunction> arrivalTimes; // unordered_set recentPackets; diff --git a/src/mesh/ReliableRouter.h b/src/mesh/ReliableRouter.h index 7299d1c1..e0890ff2 100644 --- a/src/mesh/ReliableRouter.h +++ b/src/mesh/ReliableRouter.h @@ -51,7 +51,7 @@ struct PendingPacket { class GlobalPacketIdHashFunction { public: - size_t operator()(const GlobalPacketId &p) const { return (hash()(p.node)) ^ (hash()(p.id)); } + size_t operator()(const GlobalPacketId &p) const { return (std::hash()(p.node)) ^ (std::hash()(p.id)); } }; /** @@ -60,7 +60,7 @@ class GlobalPacketIdHashFunction class ReliableRouter : public FloodingRouter { private: - unordered_map pending; + std::unordered_map pending; public: /** diff --git a/src/mesh/mesh-pb-constants.cpp b/src/mesh/mesh-pb-constants.cpp index eab15799..e7ccf45a 100644 --- a/src/mesh/mesh-pb-constants.cpp +++ b/src/mesh/mesh-pb-constants.cpp @@ -18,7 +18,7 @@ size_t pb_encode_to_bytes(uint8_t *destbuf, size_t destbufsize, const pb_msgdesc pb_ostream_t stream = pb_ostream_from_buffer(destbuf, destbufsize); if (!pb_encode(&stream, fields, src_struct)) { - DEBUG_MSG("Panic: can't encode protobuf reason='%s', reason=%s\n", PB_GET_ERROR(&stream)); + DEBUG_MSG("Panic: can't encode protobuf reason='%s'\n", PB_GET_ERROR(&stream)); assert(0); // If this asser fails it probably means you made a field too large for the max limits specified in mesh.options } else { return stream.bytes_written; @@ -30,7 +30,7 @@ bool pb_decode_from_bytes(const uint8_t *srcbuf, size_t srcbufsize, const pb_msg { pb_istream_t stream = pb_istream_from_buffer(srcbuf, srcbufsize); if (!pb_decode(&stream, fields, dest_struct)) { - DEBUG_MSG("Error: can't decode protobuf reason='%s', pb_msgdesc 0x%p, reason=%s\n", PB_GET_ERROR(&stream), fields); + DEBUG_MSG("Error: can't decode protobuf reason='%s', pb_msgdesc 0x%p\n", PB_GET_ERROR(&stream), fields); return false; } else { return true; diff --git a/src/portduino/wifi-stubs.cpp b/src/portduino/wifi-stubs.cpp deleted file mode 120000 index b90e6629..00000000 --- a/src/portduino/wifi-stubs.cpp +++ /dev/null @@ -1 +0,0 @@ -../nrf52/wifi-stubs.cpp \ No newline at end of file diff --git a/src/nrf52/wifi-stubs.cpp b/src/wifi-stubs.cpp similarity index 92% rename from src/nrf52/wifi-stubs.cpp rename to src/wifi-stubs.cpp index 6051e195..3d110c72 100644 --- a/src/nrf52/wifi-stubs.cpp +++ b/src/wifi-stubs.cpp @@ -1,7 +1,7 @@ //#include "mesh/wifi/WebServer.h" #include "configuration.h" -#ifndef NO_ESP32 +#ifdef NO_ESP32 //#include "mesh/wifi/WiFiAPClient.h"