Compare commits

...

22 Commits

Author SHA1 Message Date
Kevin Hester
451b085c13 update protos 2021-05-28 11:01:01 +08:00
Kevin Hester
3c4f3316c0 remove google play link (for now) 2021-05-28 10:11:58 +08:00
Kevin Hester
2f607d5a8c Merge pull request #812 from geeksville/dev
main Native build on OS-X (probably)
2021-05-26 10:42:31 +08:00
Kevin Hester
42f3154079 store elfs (for later debugging) in github artifacts 2021-05-26 10:21:26 +08:00
Kevin Hester
e7e09cb7ed fix wifistubs to not be on esp32 2021-05-26 10:20:44 +08:00
Kevin Hester
c6092ea520 Merge remote-tracking branch 'root/master' into dev
# Conflicts:
#	bin/build-all.sh
2021-05-26 10:10:57 +08:00
Kevin Hester
29ff778e22 fix #811 nodes rebooting due to invalid printf call, thanks @IZ1IVA
Ouch, this was nasty - printf format string wasn't matching the parameters
passed in causing a NPE due to a missing last param.

I'll investigate why printf format strings were
not being checked by the compiler (normally gcc offers that feature)
2021-05-26 10:00:23 +08:00
Sacha Weatherstone
d80814a12e Merge pull request #813 from michelepagot/master
Add device-install.bat and device-update.bat to the release package
2021-05-26 11:30:03 +10:00
Michele
cfeb0b47e9 Merge branch 'meshtastic:master' into master 2021-05-25 23:06:36 +02:00
michelepagot
6f14d017d8 add both device-install/update.bat to the release package 2021-05-25 22:54:04 +02:00
Kevin Hester
cf4e508fb3 1.2.38 2021-05-25 09:02:26 +08:00
Kevin Hester
96fc1f5272 use long versions for release names 2021-05-25 08:45:47 +08:00
Kevin Hester
5b65fd5754 force new revision names, incase we mess up builds 2021-05-25 08:33:14 +08:00
Kevin Hester
29587d4c4e 1.2.37 fix release script 2021-05-25 08:30:03 +08:00
Kevin Hester
a98bf80c24 fix release script 2021-05-25 08:30:03 +08:00
Kevin Hester
49869ca044 Merge pull request #810 from geeksville/dev
1.2.36
2021-05-25 08:05:11 +08:00
Kevin Hester
5699abc8ad Merge remote-tracking branch 'mine/dev' into windev 2021-05-25 05:12:44 +08:00
Kevin Hester
6b56583023 copy windows install scripts into build dir 2021-05-25 11:18:36 +08:00
Kevin Hester
abe95ae1a4 most of the changes needed to build native on Windows 2021-05-25 05:08:57 +08:00
Kevin Hester
4e8e85c9f1 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device into windev
# Conflicts:
#	geeksville-private/windows-build-instructions.md
#	src/graphics/Screen.h
2021-05-25 03:43:47 +08:00
Kevin Hester
26bb4ffe79 windows build wip 2021-05-25 03:38:06 +08:00
Kevin Hester
c857e5707e Merge pull request #808 from geeksville/dev
fix wifi api bug
2021-05-24 10:01:11 +08:00
16 changed files with 52 additions and 27 deletions

View File

@@ -78,9 +78,16 @@ jobs:
- name: Build everything - name: Build everything
run: bin/build-all.sh run: bin/build-all.sh
- name: Store release zip as an artifact - name: Store binaries as an artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: built name: built
path: release/archive/firmware-*.zip path: release/archive/firmware-*.zip
retention-days: 30 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

View File

@@ -49,7 +49,7 @@ jobs:
# Will be available in steps.version.outputs.version # Will be available in steps.version.outputs.version
- name: Get version string - name: Get version string
run: echo "::set-output name=version::$(./bin/buildinfo.py)" run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version id: version
- name: Build everything - name: Build everything
@@ -69,7 +69,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ github.token }} GITHUB_TOKEN: ${{ github.token }}
- name: Add artifact to release - name: Add bins to release
uses: actions/upload-release-asset@v1 uses: actions/upload-release-asset@v1
env: env:
GITHUB_TOKEN: ${{ github.token }} GITHUB_TOKEN: ${{ github.token }}
@@ -77,4 +77,14 @@ jobs:
upload_url: ${{ steps.create_release.outputs.upload_url }} upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: release/archive/firmware-${{ steps.version.outputs.version }}.zip asset_path: release/archive/firmware-${{ steps.version.outputs.version }}.zip
asset_name: firmware-${{ steps.version.outputs.version }}.zip asset_name: firmware-${{ steps.version.outputs.version }}.zip
asset_content_type: application/zip 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

View File

@@ -187,7 +187,7 @@ Hard resetting via RTS pin...
# Meshtastic Android app # Meshtastic Android app
The companion (optional) Meshtastic Android app is [here](https://play.google.com/store/apps/details?id=com.geeksville.mesh&referrer=utm_source%3Dgithub-dev-readme). You can also download it on Google Play. The companion (optional, free, open-source) Meshtastic Android app is available on various appstores [see this page for details](https://github.com/meshtastic/Meshtastic-Android/blob/master/README.md).
# Python API # Python API

View File

@@ -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 # 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="rak4631 t-echo"
#BOARDS_NRF52=""
OUTDIR=release/latest OUTDIR=release/latest
@@ -98,6 +99,9 @@ XML
echo Generating $ARCHIVEDIR/firmware-$VERSION.zip echo Generating $ARCHIVEDIR/firmware-$VERSION.zip
rm -f $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 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 echo BUILT ALL

View File

@@ -1,6 +1,8 @@
set -e
echo "This script is only for developers who are publishing new builds on github. Most users don't need it" echo "This script is only for developers who are publishing new builds on github. Most users don't need it"
VERSION=`bin/buildinfo.py` VERSION=`bin/buildinfo.py long`
# Must have a V prefix to trigger github # Must have a V prefix to trigger github
git tag "v${VERSION}" git tag "v${VERSION}"

View File

@@ -2,22 +2,19 @@
You probably don't care about this section - skip to the next one. You probably don't care about this section - skip to the next one.
* DONE investigate TCP on ESP32 https://github.com/meshtastic/Meshtastic-device/issues/807 * list portduino on platformio
* DONE fix python tool problem with windows and the heartbeat
* router mode dropping messages? https://meshtastic.discourse.group/t/router-mode-missing-messages/3329/3 * router mode dropping messages? https://meshtastic.discourse.group/t/router-mode-missing-messages/3329/3
* fix ttgo eink screen * fix ttgo eink screen
* list portduino on platformio
* DONE make native sim not touch hardware
* DONE reenable sim in CI builds
* figure our wss for mqtt.meshtastic - use cloudflare? 2052 ws, 2053 crypt * figure our wss for mqtt.meshtastic - use cloudflare? 2052 ws, 2053 crypt
* measure rak4630 power draw and turn off power for GPS most of the time. We should be able to run on the small solar panel.
* pine64 lora module * pine64 lora module
* @havealoha fixedposition not working * @havealoha fixedposition not working
* ask for vercel access * ask for vercel access
* finish plan for riot.im * finish plan for riot.im
* turn on setTx(timeout) and state = setDioIrqParams(SX126X_IRQ_TX_DONE | SX126X_IRQ_TIMEOUT, SX126X_IRQ_TX_DONE | SX126X_IRQ_TIMEOUT); in sx1262 code * turn on setTx(timeout) and state = setDioIrqParams(SX126X_IRQ_TX_DONE | SX126X_IRQ_TIMEOUT, SX126X_IRQ_TX_DONE | SX126X_IRQ_TIMEOUT); in sx1262 code
* DONE fix this sleep problem: https://meshtastic.discourse.group/t/new-device-release-1-2-30-ready-for-alpha-testing/3272/13?u=geeksville
* add rak4600 support (with rf95 radio and limited ram) * add rak4600 support (with rf95 radio and limited ram)
* store esp32 crashes to flash (and 64KB coredump partition) - https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/core_dump.html
*
* Switch to use https://github.com/adafruit/Adafruit_nRF52_Arduino.git when available (see arduino code for examples) * Switch to use https://github.com/adafruit/Adafruit_nRF52_Arduino.git when available (see arduino code for examples)
* DONE @luxonn reports that after a while the android app stops showing new messages * DONE @luxonn reports that after a while the android app stops showing new messages
* DONE release android APK - fix recent 1.2.28 crash report * DONE release android APK - fix recent 1.2.28 crash report

View File

@@ -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

2
proto

Submodule proto updated: dfcfba8d1a...f5b3d0643b

View File

@@ -5,6 +5,7 @@
#include <assert.h> #include <assert.h>
#include <sys/time.h> #include <sys/time.h>
#include <time.h> #include <time.h>
#include <cstring>
/** /**
* A printer that doesn't go anywhere * A printer that doesn't go anywhere

View File

@@ -4,8 +4,6 @@
#include <queue> #include <queue>
#include <unordered_set> #include <unordered_set>
using namespace std;
/// We clear our old flood record five minute after we see the last of it /// We clear our old flood record five minute after we see the last of it
#define FLOOD_EXPIRE_TIME (5 * 60 * 1000L) #define FLOOD_EXPIRE_TIME (5 * 60 * 1000L)
@@ -23,7 +21,7 @@ struct PacketRecord {
class PacketRecordHashFunction class PacketRecordHashFunction
{ {
public: public:
size_t operator()(const PacketRecord &p) const { return (hash<NodeNum>()(p.sender)) ^ (hash<PacketId>()(p.id)); } size_t operator()(const PacketRecord &p) const { return (std::hash<NodeNum>()(p.sender)) ^ (std::hash<PacketId>()(p.id)); }
}; };
/// Order packet records by arrival time, we want the oldest packets to be in the front of our heap /// 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. /** FIXME: really should be a std::unordered_set with the key being sender,id.
* This would make checking packets in wasSeenRecently faster. * This would make checking packets in wasSeenRecently faster.
*/ */
vector<PacketRecord> recentPackets; std::vector<PacketRecord> recentPackets;
// priority_queue<PacketRecord, vector<PacketRecord>, PacketRecordOrderFunction> arrivalTimes; // priority_queue<PacketRecord, vector<PacketRecord>, PacketRecordOrderFunction> arrivalTimes;
// unordered_set<PacketRecord, PacketRecordHashFunction> recentPackets; // unordered_set<PacketRecord, PacketRecordHashFunction> recentPackets;

View File

@@ -51,7 +51,7 @@ struct PendingPacket {
class GlobalPacketIdHashFunction class GlobalPacketIdHashFunction
{ {
public: public:
size_t operator()(const GlobalPacketId &p) const { return (hash<NodeNum>()(p.node)) ^ (hash<PacketId>()(p.id)); } size_t operator()(const GlobalPacketId &p) const { return (std::hash<NodeNum>()(p.node)) ^ (std::hash<PacketId>()(p.id)); }
}; };
/** /**
@@ -60,7 +60,7 @@ class GlobalPacketIdHashFunction
class ReliableRouter : public FloodingRouter class ReliableRouter : public FloodingRouter
{ {
private: private:
unordered_map<GlobalPacketId, PendingPacket, GlobalPacketIdHashFunction> pending; std::unordered_map<GlobalPacketId, PendingPacket, GlobalPacketIdHashFunction> pending;
public: public:
/** /**

View File

@@ -34,7 +34,7 @@ typedef enum _HardwareModel {
typedef enum _Constants { typedef enum _Constants {
Constants_Unused = 0, Constants_Unused = 0,
Constants_DATA_PAYLOAD_LEN = 240 Constants_DATA_PAYLOAD_LEN = 237
} Constants; } Constants;
typedef enum _CriticalErrorCode { typedef enum _CriticalErrorCode {

View File

@@ -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); pb_ostream_t stream = pb_ostream_from_buffer(destbuf, destbufsize);
if (!pb_encode(&stream, fields, src_struct)) { 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 assert(0); // If this asser fails it probably means you made a field too large for the max limits specified in mesh.options
} else { } else {
return stream.bytes_written; 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); pb_istream_t stream = pb_istream_from_buffer(srcbuf, srcbufsize);
if (!pb_decode(&stream, fields, dest_struct)) { 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; return false;
} else { } else {
return true; return true;

View File

@@ -1 +0,0 @@
../nrf52/wifi-stubs.cpp

View File

@@ -1,7 +1,7 @@
//#include "mesh/wifi/WebServer.h" //#include "mesh/wifi/WebServer.h"
#include "configuration.h" #include "configuration.h"
#ifndef NO_ESP32 #ifdef NO_ESP32
//#include "mesh/wifi/WiFiAPClient.h" //#include "mesh/wifi/WiFiAPClient.h"

View File

@@ -1,4 +1,4 @@
[VERSION] [VERSION]
major = 1 major = 1
minor = 2 minor = 2
build = 36 build = 38