creating Pi ready "dual" images ready for public trial

This commit is contained in:
John Poole 2026-05-22 12:12:07 -07:00
commit 21a6a2f676
7 changed files with 1186 additions and 1 deletions

View file

@ -86,8 +86,10 @@ jp_native_peripheral
jp_native_dual
pi_zero_1_native
pi_zero_1_peripheral
pi_zero_1_dual
pi_zero_2_native
pi_zero_2_peripheral
pi_zero_2_dual
```
`jp_native` builds a Linux console program instead of ESP32 firmware. It uses the host Bluetooth adapter through BlueZ D-Bus, skips the OLED path, and prints received text to stdout. The current jp payload is `texts/little_boy_blue.txt`.
@ -96,6 +98,8 @@ pi_zero_2_peripheral
`jp_native_dual` registers both host interfaces in one process: the Linux central/client path and the Linux peripheral/server path.
`pi_zero_1_dual` and `pi_zero_2_dual` do the same for Raspberry Pi native builds, but use Pi-specific node labels and selected text files.
## Building
### ESP32
@ -261,6 +265,61 @@ The Pi must have BlueZ, GLib/GIO development headers, and a BLE adapter that sup
### Two Pi Zero 2Ws
The preferred Pi-to-Pi experiment is now the dual-role pair. Each Pi starts both BlueZ roles in one process: central/client scanning and peripheral/server advertising. The two builds differ only by node label and compiled-in text payload:
```text
pi_zero_1_dual Node-PIZERO1-DUAL little_boy_blue.txt
pi_zero_2_dual Node-PIZERO2-DUAL children.txt
```
Build on a Pi with the same OS architecture and compatible libraries as the target Pi Zero 2Ws:
```bash
source /home/jlpoole/rnsenv/bin/activate
cd /usr/local/src/microreticulum/microReticulumTbeam
pio run -d exercises/306_microReticulum_ble_file_transfer_oled -e pi_zero_1_dual -e pi_zero_2_dual
```
The output binaries are:
```text
exercises/306_microReticulum_ble_file_transfer_oled/.pio/build/pi_zero_1_dual/program
exercises/306_microReticulum_ble_file_transfer_oled/.pio/build/pi_zero_2_dual/program
```
For web/download publication, copy or rename those artifacts with names that include the platform, role mode, and poem:
```text
microreticulum_306_rpi_arm64_dual_little_boy_blue
microreticulum_306_rpi_arm64_dual_children
```
On the Pi build machine, make the download copies and strip them:
```bash
cp exercises/306_microReticulum_ble_file_transfer_oled/.pio/build/pi_zero_1_dual/program microreticulum_306_rpi_arm64_dual_little_boy_blue
cp exercises/306_microReticulum_ble_file_transfer_oled/.pio/build/pi_zero_2_dual/program microreticulum_306_rpi_arm64_dual_children
strip microreticulum_306_rpi_arm64_dual_little_boy_blue microreticulum_306_rpi_arm64_dual_children
```
Run one on each Pi. There should be no required start order for the dual-role test, although starting one Pi a few seconds before the other makes the log easier to read.
```bash
./microreticulum_306_rpi_arm64_dual_little_boy_blue
./microreticulum_306_rpi_arm64_dual_children
```
You can copy those binaries to another Pi Zero 2W and rename them for clarity if both Pis use the same CPU architecture, OS bitness, and compatible runtime libraries. Check with:
```bash
file exercises/306_microReticulum_ble_file_transfer_oled/.pio/build/pi_zero_1_dual/program
ldd exercises/306_microReticulum_ble_file_transfer_oled/.pio/build/pi_zero_1_dual/program
```
If one Pi is 32-bit and the other is 64-bit, or their GLib/BlueZ runtime libraries differ significantly, build directly on each target instead of copying binaries.
The older split-role environments are still available for controlled tests where you want to force one Pi to advertise and the other Pi to scan:
For two Pi Zero 2Ws, build one peripheral/server binary and one central/client binary. These environments use distinct node labels and text payloads:
```text

View file

@ -294,6 +294,47 @@ lib_deps =
microReticulum=symlink:///usr/local/src/microreticulum/microReticulum
lib_compat_mode = off
[env:pi_zero_1_dual]
platform = native
build_type = debug
extra_scripts = pre:scripts/embed_text.py
custom_text_source = texts/little_boy_blue.txt
build_unflags =
-std=gnu++11
build_flags =
-std=c++17
-g3
-ggdb
-Wall
-Wextra
-Wno-missing-field-initializers
-Wno-format
-Wno-unused-parameter
-include stdint.h
-D HOST_NATIVE
-D HOST_BLE_DUAL
-D NATIVE
-D RNS_USE_FS
-D RNS_PERSIST_PATHS
-D USTORE_USE_UNIVERSALFS
-D MSGPACK_USE_BOOST=OFF
-D FILE_TRANSFER_CHUNK_SIZE=32
-D FILE_TRANSFER_CHUNK_INTERVAL_MS=500
-D HOST_NODE_LABEL=\"Node-PIZERO1-DUAL\"
!pkg-config --cflags gio-2.0 glib-2.0 bluez
!pkg-config --libs gio-2.0 glib-2.0 bluez
build_src_filter =
+<host_jp_main.cpp>
+<HostBluezBleInterface.cpp>
+<HostBluezPeripheralInterface.cpp>
lib_deps =
ArduinoJson@^7.4.2
MsgPack@^0.4.2
https://github.com/attermann/Crypto.git
https://github.com/attermann/microStore.git
microReticulum=symlink:///usr/local/src/microreticulum/microReticulum
lib_compat_mode = off
[env:pi_zero_2_native]
platform = native
build_type = debug
@ -373,6 +414,47 @@ lib_deps =
microReticulum=symlink:///usr/local/src/microreticulum/microReticulum
lib_compat_mode = off
[env:pi_zero_2_dual]
platform = native
build_type = debug
extra_scripts = pre:scripts/embed_text.py
custom_text_source = texts/children.txt
build_unflags =
-std=gnu++11
build_flags =
-std=c++17
-g3
-ggdb
-Wall
-Wextra
-Wno-missing-field-initializers
-Wno-format
-Wno-unused-parameter
-include stdint.h
-D HOST_NATIVE
-D HOST_BLE_DUAL
-D NATIVE
-D RNS_USE_FS
-D RNS_PERSIST_PATHS
-D USTORE_USE_UNIVERSALFS
-D MSGPACK_USE_BOOST=OFF
-D FILE_TRANSFER_CHUNK_SIZE=32
-D FILE_TRANSFER_CHUNK_INTERVAL_MS=500
-D HOST_NODE_LABEL=\"Node-PIZERO2-DUAL\"
!pkg-config --cflags gio-2.0 glib-2.0 bluez
!pkg-config --libs gio-2.0 glib-2.0 bluez
build_src_filter =
+<host_jp_main.cpp>
+<HostBluezBleInterface.cpp>
+<HostBluezPeripheralInterface.cpp>
lib_deps =
ArduinoJson@^7.4.2
MsgPack@^0.4.2
https://github.com/attermann/Crypto.git
https://github.com/attermann/microStore.git
microReticulum=symlink:///usr/local/src/microreticulum/microReticulum
lib_compat_mode = off
[env:amy]
extends = tbeam_base
upload_port = /dev/ttytAMY

View file

@ -0,0 +1,108 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Exercise 306 Raspberry Pi Downloads</title>
<style>
:root {
color-scheme: light dark;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
line-height: 1.45;
}
body {
max-width: 880px;
margin: 0 auto;
padding: 32px 20px 48px;
}
h1,
h2 {
line-height: 1.15;
}
table {
width: 100%;
border-collapse: collapse;
margin: 18px 0 24px;
}
th,
td {
padding: 10px 12px;
border-bottom: 1px solid color-mix(in srgb, currentColor 22%, transparent);
text-align: left;
vertical-align: top;
}
code {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 0.94em;
}
.note {
padding: 12px 14px;
border-left: 4px solid #2672a8;
background: color-mix(in srgb, #2672a8 12%, transparent);
}
</style>
</head>
<body>
<h1>Exercise 306 Raspberry Pi Downloads</h1>
<p>
These ARM64 Linux binaries run Exercise 306 microReticulum BLE file transfer
on Raspberry Pi OS Trixie 64-bit. Each executable embeds one text payload and
runs in dual BLE mode: it scans as a central and advertises as a peripheral.
</p>
<p class="note">
Use two different payload binaries for a simple exchange test. Start one on
each Pi; no fixed client/server start order is intended for the dual builds.
</p>
<h2>Downloads</h2>
<table>
<thead>
<tr>
<th>Binary</th>
<th>Node Label</th>
<th>Payload</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="microreticulum_306_rpi_arm64_dual_little_boy_blue"><code>microreticulum_306_rpi_arm64_dual_little_boy_blue</code></a></td>
<td><code>Node-PIZERO1-DUAL</code></td>
<td><code>little_boy_blue.txt</code></td>
</tr>
<tr>
<td><a href="microreticulum_306_rpi_arm64_dual_children"><code>microreticulum_306_rpi_arm64_dual_children</code></a></td>
<td><code>Node-PIZERO2-DUAL</code></td>
<td><code>children.txt</code></td>
</tr>
</tbody>
</table>
<h2>Install Notes</h2>
<p>
Read <a href="raspberrypi_install.md">raspberrypi_install.md</a> for Raspberry
Pi OS setup, BlueZ checks, runtime package requirements, and first-run
troubleshooting.
</p>
<h2>Build Artifacts</h2>
<p>
The files above are expected to be renamed copies of the PlatformIO outputs:
</p>
<ul>
<li><code>.pio/build/pi_zero_1_dual/program</code></li>
<li><code>.pio/build/pi_zero_2_dual/program</code></li>
</ul>
</body>
</html>

View file

@ -0,0 +1,268 @@
# Installation on RaspberryPi Trixie (64)
This documents steps to running a prebuilt Exercise 306 binary on a Raspberry Pi 4B or Pi Zero 2W. You will need a second instance to hand shake with, which can be another ARM64 Pi, an AMD64 Linux host, or a T-Beam (ESP32-S).
![](../../img/DSC_5347_v1.jpg)
## New SD Card (Optional)
This section is optional if you already have Trixie running on a Raspberry Pi 4B or Raspberry Pi Zero 2W. This install guide has not been tested on other model.
This assume you know where your SD Card is exposed as a device and in this example, the card is available as /dev/sdf.
sudo dd if=/home/jlpoole/Downloads/RaspberryPi/2026-04-21-raspios-trixie-arm64-lite.img of=/dev/sdf bs=4M status=progress conv=fsync
Example:
```bash
jlpoole@jp ~ $ date; time sudo dd if=/home/jlpoole/Downloads/RaspberryPi/2026-04-21-raspios-trixie-arm64-lite.img of=/dev/sdf bs=4M status=progress conv=fsync
Fri May 22 09:32:34 PDT 2026
2738880512 bytes (2.7 GB, 2.6 GiB) copied, 105 s, 26.1 MB/s3229614080 bytes (3.2 GB, 3.0 GiB) copied, 105.792 s, 30.5 MB/s
770+0 records in
770+0 records out
3229614080 bytes (3.2 GB, 3.0 GiB) copied, 140.443 s, 23.0 MB/s
real 2m20.497s
user 0m0.008s
sys 0m0.009s
jlpoole@jp ~ $
```
## 1. Confirm the target image is 64-bit ARM
Your binary is:
```bash
ELF 64-bit LSB pie executable, ARM aarch64
interpreter /lib/ld-linux-aarch64.so.1
```
So your receiving Pi image must be 64-bit Raspberry Pi OS / Debian Trixie, not 32-bit.
```bash
uname -m
getconf LONG_BIT
```
Expected:
```bash
aarch64
64
```
## 2. Install runtime packages
BlueZ is the official Linux Bluetooth protocol stack and supplies Bluetooth daemons/tools on Debian Trixie. The rfkill package is useful because blocked Bluetooth is a common fresh-image problem. For Raspberry Pi Bluetooth firmware, Debians bluez-firmware package specifically notes Broadcom BCM203x and Raspberry Pi chipset support.
```bash
sudo apt update
sudo apt install -y \
bluez \
bluez-firmware \
rfkill \
bluetooth \
libglib2.0-0t64 \
libstdc++6 \
libc6 \
zlib1g \
libmount1 \
libselinux1 \
libffi8 \
libatomic1 \
libpcre2-8-0 \
util-linux
```
## 3. Enable and start Bluetooth
Raspberry Pi OS uses systemd.
```bash
sudo systemctl enable bluetooth
sudo systemctl start bluetooth
sudo systemctl status bluetooth --no-pager
```
Then unblock the radio:
```bash
sudo rfkill unblock bluetooth
rfkill list
```
You want Bluetooth to show:
```bash
Soft blocked: no
Hard blocked: no
```
## 4. Verify BlueZ sees the adapter
```bash
bluetoothctl list
bluetoothctl show
```
A quick noninteractive check:
```bash
bluetoothctl show | egrep 'Controller|Powered|Discoverable|Discovering'
```
If Powered: no, run:
```bash
bluetoothctl power on
```
The bluetoothctl tool works with both classic Bluetooth and BLE controllers, and is the standard CLI check for BlueZ state.
## 5. Copy the binary
For Pi-to-Pi exchange, prefer the dual-role binaries. The filename should identify the platform, role mode, and poem compiled into the executable:
```text
microreticulum_306_rpi_arm64_dual_little_boy_blue
microreticulum_306_rpi_arm64_dual_children
```
Example scp command to a new server named "trixie1":
```bash
scp microreticulum_306_rpi_arm64_dual_children trixie1:~
```
## 6. Verify shared libraries before first run
```bash
ldd ./microreticulum_306_rpi_arm64_dual_children | tee ldd_$(date +%Y%m%d_%H%M).txt
```
Example:
```bash
jlpoole@trixie1:~ $ ldd ./microreticulum_306_rpi_arm64_dual_children | tee ldd_$(date +%Y%m%d_%H%M).txt
linux-vdso.so.1 (0x0000007f9cb5c000)
libgio-2.0.so.0 => /lib/aarch64-linux-gnu/libgio-2.0.so.0 (0x0000007f9c830000)
libgobject-2.0.so.0 => /lib/aarch64-linux-gnu/libgobject-2.0.so.0 (0x0000007f9c7a0000)
libglib-2.0.so.0 => /lib/aarch64-linux-gnu/libglib-2.0.so.0 (0x0000007f9c610000)
libstdc++.so.6 => /lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000007f9c3a0000)
libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f9c2f0000)
libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007f9c2b0000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f9c0f0000)
libgmodule-2.0.so.0 => /lib/aarch64-linux-gnu/libgmodule-2.0.so.0 (0x0000007f9c0c0000)
libz.so.1 => /lib/aarch64-linux-gnu/libz.so.1 (0x0000007f9c080000)
libmount.so.1 => /lib/aarch64-linux-gnu/libmount.so.1 (0x0000007f9bfe0000)
libselinux.so.1 => /lib/aarch64-linux-gnu/libselinux.so.1 (0x0000007f9bf80000)
/lib/ld-linux-aarch64.so.1 (0x0000007f9cb20000)
libffi.so.8 => /lib/aarch64-linux-gnu/libffi.so.8 (0x0000007f9bf50000)
libatomic.so.1 => /lib/aarch64-linux-gnu/libatomic.so.1 (0x0000007f9bf20000)
libpcre2-8.so.0 => /lib/aarch64-linux-gnu/libpcre2-8.so.0 (0x0000007f9be60000)
libblkid.so.1 => /lib/aarch64-linux-gnu/libblkid.so.1 (0x0000007f9bde0000)
jlpoole@trixie1:~ $
```
The pass/fail test is simple:
ldd ./microreticulum_306_rpi_arm64_dual_children | grep 'not found'
No output is good.
Also document:
file ./microreticulum_306_rpi_arm64_dual_children
Expected:
ELF 64-bit LSB pie executable, ARM aarch64, dynamically linked ... stripped
## 7. Run a smoke test
First run in foreground:
Expected healthy startup:
```bash
jlpoole@trixie1:~ $ ./microreticulum_306_rpi_arm64_dual_children
Exercise 306 native BLE file transfer console
Node=Node-PIZERO2-DUAL
Selected file=children.txt bytes=1422 chunk=32 interval_ms=500 repeat_rest_ms=10000
[ustore] Initializing PosixFileSystem
[ustore] WARNING: FlashFSFileSystem check failed, reformatting!
BLE linux-central: adapter=/org/bluez/hci0 label=Node-PIZERO2-DUAL
BLE linux-central: scanning for Reticulum service
BLE linux-peripheral: adapter=/org/bluez/hci0 label=Node-PIZERO2-DUAL service=37145b00-442d-4a94-917f-8f42c5da28e3
BLE linux-peripheral: advertising Reticulum service; waiting for central
Local SINGLE destination: dcf5338564d2cf21bfa86f1f2a9a89a3
microReticulum ready; OLED skipped on host native build
BLE linux-dual waiting for peer
BLE linux-dual waiting for peer
```
When you have a second unit running, your console will show something like:
```bash
[Startup stuff]
...
BLE linux-dual waiting for peer
BLE linux-dual waiting for peer
BLE linux-central: peer candidate path=/org/bluez/hci0/dev_B8_27_EB_82_B2_4C name=RNS-Node-PIZERO1-DUAL
BLE linux-central: connected to /org/bluez/hci0/dev_B8_27_EB_82_B2_4C
BLE linux-central: notifications active; identity handshake sent
2026-05-22 18:24:37 [ERR] Failed to add destination 5aec1dc0939292aa8113cb8661bf06c3 to path table!
RX ANNOUNCE: label=Node-PIZERO1-DUAL hash=5aec1dc0939292aa8113cb8661bf06c3
TX ANNOUNCE: Node-PIZERO2-DUAL
LINK ACTIVE: inbound peer=Node-PIZERO1-DUAL link_id=7993e8fb37845c2f9d1e54ad3d5e2457
RX FILE BEGIN: from=Node-PIZERO1-DUAL file=little_boy_blue.txt bytes=942 chunks=30 crc=8FFFB95D
TX FILE BEGIN: round=1 file=children.txt bytes=1422 chunks=45 crc=C9E80D8B
The little toy dog is covered with dust,
But sturdy and staunch he stands;
And the little toy soldier is red with rust,
And his musket molds in his hands.
Time was when the little toy dog was new,
And the soldier was passing fair;
And that was the time when our Little Boy Blue
Kissed them and put them there.
...
What has become of our Little Boy Blue,
Since he kissed them and put them there.
RX FILE END: from=Node-PIZERO1-DUAL file=little_boy_blue.txt received=942/942 chunks=30/30 crc=8FFFB95D status=OK
TX FILE END: round=1 file=children.txt bytes=1422 chunks=45 crc=C9E80D8B next_round_in_ms=10000
RX FILE BEGIN: from=Node-PIZERO1-DUAL file=little_boy_blue.txt bytes=942 chunks=30 crc=8FFFB95D
The little toy dog is covered with dust,
But sturdy and staunch he stands;
And the little toy soldier is red with rust,
And his musket molds in his hands.
Time was when the little toy dog was new,
And the soldier w^CBLE linux-central: disconnected; local stop
Stopped
jlpoole@trixie1:~ $ #
```
The [ustore] WARNING: FlashFSFileSystem check failed, reformatting! line is not necessarily fatal in the native build, but the program must be run from a writable directory, because it appears to initialize local storage.
## 9. Permission troubleshooting
If the program cannot talk to BlueZ over D-Bus or cannot power/scan the adapter, test once with sudo:
```bash
sudo ./microreticulum_306_rpi_arm64_dual_children
```
If sudo works but the normal user fails, document that this is a BlueZ/D-Bus permission issue, not a missing-library issue. The clean fix may be a D-Bus policy rule for your programs BlueZ access, but for the first howto I would keep the instruction conservative:
```bash
sudo usermod -aG bluetooth,netdev "$USER"
newgrp bluetooth
```
Then log out and back in.
## 10. Common failure checks
### Is the adapter present?
hciconfig -a 2>/dev/null || bluetoothctl list
### Is Bluetooth blocked?
rfkill list
### Is the daemon running?
systemctl status bluetooth --no-pager
### Does BlueZ respond?
bluetoothctl show
### Are libraries missing?
ldd ./microreticulum_306_rpi_arm64_dual_children | grep 'not found'
### Is the binary executable?
ls -l ./microreticulum_306_rpi_arm64_dual_children
*Note:* on an initial run, the binary will create a local Reticulum credential file `transport_identity` in the directory where you run the binary from.
Example:
```bash
jlpoole@trixie1:~ $ ls -la transport_identity
-rw-r--r-- 1 jlpoole jlpoole 64 May 22 18:21 transport_identity
jlpoole@trixie1:~ $
```

View file

@ -539,7 +539,7 @@ int main() {
std::signal(SIGTERM, handle_signal);
RNS::loglevel(RNS::LOG_NOTICE);
std::printf("Exercise 306 jp native BLE file transfer console\n");
std::printf("Exercise 306 native BLE file transfer console\n");
std::printf("Node=%s\n", node_label.c_str());
std::printf("Selected file=%s bytes=%u chunk=%u interval_ms=%lu repeat_rest_ms=%lu\n",
SELECTED_TEXT_NAME, (unsigned)SELECTED_TEXT_SIZE,

View file

@ -0,0 +1,668 @@
(pioenv) jlpoole@eos /usr/local/src/microreticulum/microReticulumTbeam $ pio run -d exercises/306_microReticulum_ble_file_transfer_oled -e jp_native
Processing jp_native (platform: native)
---------------------------------------------------------------------------------------------------------------------------------------
Library Manager: Installing symlink:///usr/local/src/microreticulum/microReticulum
Library Manager: microReticulum@0.3.1 has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing ArduinoJson @ ~7.4.2
Downloading [####################################] 100%
Unpacking [####################################] 100%
Library Manager: ArduinoJson@7.4.3 has been installed!
Library Manager: Installing MsgPack @ ~0.4.2
Library Manager: Warning! More than one package has been found by MsgPack @ ~0.4.2 requirements:
Library Manager: - hideakitai/MsgPack@0.4.2
Library Manager: - mbed-yihui/msgpack@0.0.0+sha.5237a514fdab
Library Manager: Please specify detailed REQUIREMENTS using package owner and version (shown above) to avoid name conflicts
Downloading [####################################] 100%
Unpacking [####################################] 100%
Library Manager: MsgPack@0.4.2 has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing hideakitai/ArxContainer @ >=0.6.0
Downloading [####################################] 100%
Unpacking [####################################] 100%
Library Manager: ArxContainer@0.7.0 has been installed!
Library Manager: Installing hideakitai/ArxTypeTraits @ *
Downloading [####################################] 100%
Unpacking [####################################] 100%
Library Manager: ArxTypeTraits@0.3.2 has been installed!
Library Manager: Installing hideakitai/DebugLog @ >=0.8.1
Downloading [####################################] 100%
Unpacking [####################################] 100%
Library Manager: DebugLog@0.8.4 has been installed!
Library Manager: Resolving dependencies...
Verbose mode can be enabled via `-v, --verbose` option
Embedded /usr/local/src/microreticulum/microReticulumTbeam/exercises/306_microReticulum_ble_file_transfer_oled/texts/little_boy_blue.txt (942 bytes) -> /usr/local/src/microreticulum/microReticulumTbeam/exercises/306_microReticulum_ble_file_transfer_oled/.pio/build/jp_native/generated/SelectedText.h
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ off
Found 8 compatible libraries
Scanning dependencies...
Dependency Graph
|-- ArduinoJson @ 7.4.3
|-- MsgPack @ 0.4.2
|-- Crypto @ 0.4.0+sha.da68972
|-- microStore @ 0.1.6+sha.4b73902
|-- microReticulum @ 0.3.1
Building in debug mode
Compiling .pio/build/jp_native/src/HostBluezBleInterface.o
Compiling .pio/build/jp_native/src/host_jp_main.o
Compiling .pio/build/jp_native/libcc8/Crypto/AES128.o
Compiling .pio/build/jp_native/libcc8/Crypto/AES192.o
Compiling .pio/build/jp_native/libcc8/Crypto/AES256.o
Compiling .pio/build/jp_native/libcc8/Crypto/AESCommon.o
Compiling .pio/build/jp_native/libcc8/Crypto/AESEsp32.o
Compiling .pio/build/jp_native/libcc8/Crypto/AuthenticatedCipher.o
Compiling .pio/build/jp_native/libcc8/Crypto/BLAKE2b.o
Compiling .pio/build/jp_native/libcc8/Crypto/BLAKE2s.o
Compiling .pio/build/jp_native/libcc8/Crypto/BigNumberUtil.o
Compiling .pio/build/jp_native/libcc8/Crypto/BlockCipher.o
Compiling .pio/build/jp_native/libcc8/Crypto/CTR.o
Compiling .pio/build/jp_native/libcc8/Crypto/ChaCha.o
Compiling .pio/build/jp_native/libcc8/Crypto/ChaChaPoly.o
Compiling .pio/build/jp_native/libcc8/Crypto/Cipher.o
Compiling .pio/build/jp_native/libcc8/Crypto/Crypto.o
Compiling .pio/build/jp_native/libcc8/Crypto/Curve25519.o
Compiling .pio/build/jp_native/libcc8/Crypto/EAX.o
Compiling .pio/build/jp_native/libcc8/Crypto/Ed25519.o
Compiling .pio/build/jp_native/libcc8/Crypto/GCM.o
Compiling .pio/build/jp_native/libcc8/Crypto/GF128.o
Compiling .pio/build/jp_native/libcc8/Crypto/GHASH.o
Compiling .pio/build/jp_native/libcc8/Crypto/HKDF.o
Compiling .pio/build/jp_native/libcc8/Crypto/Hash.o
Compiling .pio/build/jp_native/libcc8/Crypto/KeccakCore.o
Compiling .pio/build/jp_native/libcc8/Crypto/NoiseSource.o
Compiling .pio/build/jp_native/libcc8/Crypto/OMAC.o
Compiling .pio/build/jp_native/libcc8/Crypto/P521.o
Compiling .pio/build/jp_native/libcc8/Crypto/Poly1305.o
Compiling .pio/build/jp_native/libcc8/Crypto/RNG.o
Compiling .pio/build/jp_native/libcc8/Crypto/SHA224.o
Compiling .pio/build/jp_native/libcc8/Crypto/SHA256.o
.pio/libdeps/jp_native/Crypto/RNG.cpp:87:2: warning: #warning "no hardware random number source detected for this platform" [-Wcpp]
87 | #warning "no hardware random number source detected for this platform"
| ^~~~~~~
Compiling .pio/build/jp_native/libcc8/Crypto/SHA3.o
Compiling .pio/build/jp_native/libcc8/Crypto/SHA384.o
Compiling .pio/build/jp_native/libcc8/Crypto/SHA512.o
Compiling .pio/build/jp_native/libcc8/Crypto/SHAKE.o
Compiling .pio/build/jp_native/libcc8/Crypto/XOF.o
Compiling .pio/build/jp_native/libcc8/Crypto/XTS.o
Compiling .pio/build/jp_native/libd98/microReticulum/Bytes.o
Compiling .pio/build/jp_native/libd98/microReticulum/Channel.o
Compiling .pio/build/jp_native/libd98/microReticulum/Cryptography/CBC.o
Compiling .pio/build/jp_native/libd98/microReticulum/Cryptography/Ed25519.o
Compiling .pio/build/jp_native/libd98/microReticulum/Cryptography/Fernet.o
Compiling .pio/build/jp_native/libd98/microReticulum/Cryptography/HKDF.o
Compiling .pio/build/jp_native/libd98/microReticulum/Cryptography/Hashes.o
Compiling .pio/build/jp_native/libd98/microReticulum/Cryptography/Token.o
Compiling .pio/build/jp_native/libd98/microReticulum/Cryptography/X25519.o
Compiling .pio/build/jp_native/libd98/microReticulum/Destination.o
Compiling .pio/build/jp_native/libd98/microReticulum/Identity.o
Compiling .pio/build/jp_native/libd98/microReticulum/Interface.o
Compiling .pio/build/jp_native/libd98/microReticulum/Link.o
Archiving .pio/build/jp_native/libcc8/libCrypto.a
Compiling .pio/build/jp_native/libd98/microReticulum/Log.o
Indexing .pio/build/jp_native/libcc8/libCrypto.a
Compiling .pio/build/jp_native/libd98/microReticulum/Packet.o
In file included from .pio/libdeps/jp_native/DebugLog/DebugLogRestoreState.h:4,
from .pio/libdeps/jp_native/DebugLog/DebugLog.h:54,
from .pio/libdeps/jp_native/MsgPack/MsgPack.h:5,
from /usr/local/src/microreticulum/microReticulum/src/Link.cpp:31:
.pio/libdeps/jp_native/DebugLog/DebugLogEnable.h:50:4: warning: #warning "Defaulting to a log level of: DEBUGLOG_DEFAULT_LOG_LEVEL_TRACE" [-Wcpp]
50 | #warning "Defaulting to a log level of: DEBUGLOG_DEFAULT_LOG_LEVEL_TRACE"
| ^~~~~~~
In file included from .pio/libdeps/jp_native/MsgPack/MsgPack.h:7:
.pio/libdeps/jp_native/DebugLog/DebugLogEnable.h:50:4: warning: #warning "Defaulting to a log level of: DEBUGLOG_DEFAULT_LOG_LEVEL_TRACE" [-Wcpp]
50 | #warning "Defaulting to a log level of: DEBUGLOG_DEFAULT_LOG_LEVEL_TRACE"
| ^~~~~~~
In file included from .pio/libdeps/jp_native/DebugLog/DebugLogRestoreState.h:4,
from .pio/libdeps/jp_native/MsgPack/MsgPack.h:19:
.pio/libdeps/jp_native/DebugLog/DebugLogEnable.h:50:4: warning: #warning "Defaulting to a log level of: DEBUGLOG_DEFAULT_LOG_LEVEL_TRACE" [-Wcpp]
50 | #warning "Defaulting to a log level of: DEBUGLOG_DEFAULT_LOG_LEVEL_TRACE"
| ^~~~~~~
In file included from src/HostBluezBleInterface.h:3,
from src/host_jp_main.cpp:8:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from src/HostBluezBleInterface.h:3,
from src/HostBluezBleInterface.cpp:1:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Bytes.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Ed25519.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Ed25519.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Hashes.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Hashes.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Cryptography/../Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Cryptography/../Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Cryptography/X25519.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Cryptography/X25519.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Cryptography/HKDF.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Cryptography/HKDF.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Cryptography/../Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Cryptography/../Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Random.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Fernet.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Fernet.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Cryptography/../Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Cryptography/../Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Destination.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Channel.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Channel.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Random.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Token.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Cryptography/Token.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Cryptography/../Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Cryptography/../Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Destination.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Destination.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Log.cpp:17:
/usr/local/src/microreticulum/microReticulum/src/Utilities/../Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Utilities/../Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Identity.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Interface.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Interface.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Destination.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Link.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Link.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
Compiling .pio/build/jp_native/libd98/microReticulum/Persistence/DestinationEntry.o
Compiling .pio/build/jp_native/libd98/microReticulum/Resource.o
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Destination.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Link.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Packet.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
Compiling .pio/build/jp_native/libd98/microReticulum/Reticulum.o
Compiling .pio/build/jp_native/libd98/microReticulum/Transport.o
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23,
from /usr/local/src/microreticulum/microReticulum/src/Transport.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Reticulum.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Channel.cpp:17:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from src/HostBluezBleInterface.cpp:3:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/LinkData.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Link.cpp:17:
/usr/local/src/microreticulum/microReticulum/src/Resource.h: At global scope:
/usr/local/src/microreticulum/microReticulum/src/Resource.h:108:17: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
108 | const Type::Resource::status status() const;
| ^~~~~
/usr/local/src/microreticulum/microReticulum/src/Resource.h:109:17: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
109 | const size_t size() const;
| ^~~~~
/usr/local/src/microreticulum/microReticulum/src/Resource.h:110:17: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
110 | const size_t total_size() const;
| ^~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23,
from src/host_jp_main.cpp:18:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23,
from /usr/local/src/microreticulum/microReticulum/src/Transport.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Destination.cpp:17:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23,
from /usr/local/src/microreticulum/microReticulum/src/Transport.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Reticulum.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Identity.cpp:17:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
Compiling .pio/build/jp_native/libd98/microReticulum/Utilities/Crc.o
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23,
from /usr/local/src/microreticulum/microReticulum/src/Transport.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Interface.cpp:18:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23,
from /usr/local/src/microreticulum/microReticulum/src/LinkData.h:23:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
Compiling .pio/build/jp_native/libd98/microReticulum/Utilities/Memory.o
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
/usr/local/src/microreticulum/microReticulum/src/Identity.cpp: In static member function 'static bool RNS::Identity::save_known_destinations()':
/usr/local/src/microreticulum/microReticulum/src/Identity.cpp:305:24: warning: unused variable 'save_start' [-Wunused-variable]
305 | double save_start = OS::time();
| ^~~~~~~~~~
Compiling .pio/build/jp_native/libd98/microReticulum/Utilities/OS.o
Compiling .pio/build/jp_native/libd98/microReticulum/Utilities/Persistence.o
/usr/local/src/microreticulum/microReticulum/src/Packet.cpp: In member function 'std::string RNS::Packet::dumpString() const':
/usr/local/src/microreticulum/microReticulum/src/Packet.cpp:641:57: warning: ignoring return value of 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const _CharT*) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]', declared with attribute 'nodiscard' [-Wunused-result]
641 | std::to_string(_object->_header_type) + "\n";
| ^~~~
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/string:54,
from /usr/local/src/microreticulum/microReticulum/src/Log.h:23,
from /usr/local/src/microreticulum/microReticulum/src/Identity.h:17:
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/basic_string.h:3733:5: note: declared here
3733 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Packet.cpp:662:60: warning: ignoring return value of 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const _CharT*) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]', declared with attribute 'nodiscard' [-Wunused-result]
662 | std::to_string(_object->_transport_type) + "\n";
| ^~~~
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/basic_string.h:3733:5: note: declared here
3733 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Packet.cpp:680:62: warning: ignoring return value of 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const _CharT*) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]', declared with attribute 'nodiscard' [-Wunused-result]
680 | std::to_string(_object->_destination_type) + "\n";
| ^~~~
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/basic_string.h:3733:5: note: declared here
3733 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Packet.cpp:707:57: warning: ignoring return value of 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const _CharT*) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]', declared with attribute 'nodiscard' [-Wunused-result]
707 | std::to_string(_object->_packet_type) + "\n";
| ^~~~
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/basic_string.h:3733:5: note: declared here
3733 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
In file included from .pio/libdeps/jp_native/MsgPack/MsgPack/Packer.h:28,
from .pio/libdeps/jp_native/MsgPack/MsgPack.h:13:
.pio/libdeps/jp_native/MsgPack/MsgPack/Unpacker.h: At global scope:
.pio/libdeps/jp_native/MsgPack/MsgPack/Unpacker.h:110:26: warning: 'template<long unsigned int N> class ArduinoJson::V743HB42::StaticJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
110 | bool deserialize(StaticJsonDocument<N>& doc) {
| ^~~~~~~~~~~~~~~~~~
In file included from .pio/libdeps/jp_native/ArduinoJson/src/ArduinoJson.hpp:65,
from .pio/libdeps/jp_native/ArduinoJson/src/ArduinoJson.h:9,
from /usr/local/src/microreticulum/microReticulum/src/Bytes.h:20:
.pio/libdeps/jp_native/ArduinoJson/src/ArduinoJson/compatibility.hpp:63:58: note: declared here
63 | class ARDUINOJSON_DEPRECATED("use JsonDocument instead") StaticJsonDocument
| ^~~~~~~~~~~~~~~~~~
.pio/libdeps/jp_native/MsgPack/MsgPack/Unpacker.h:113:50: warning: 'DynamicJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
113 | bool deserialize(DynamicJsonDocument& doc) {
| ^
.pio/libdeps/jp_native/ArduinoJson/src/ArduinoJson/compatibility.hpp:125:58: note: declared here
125 | class ARDUINOJSON_DEPRECATED("use JsonDocument instead") DynamicJsonDocument
| ^~~~~~~~~~~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Packet.cpp:784:53: warning: ignoring return value of 'std::__cxx11::basic_string<_CharT, _Traits, _Allocator> std::operator+(__cxx11::basic_string<_CharT, _Traits, _Allocator>&&, const _CharT*) [with _CharT = char; _Traits = char_traits<char>; _Alloc = allocator<char>]', declared with attribute 'nodiscard' [-Wunused-result]
784 | std::to_string(_object->_context) + "\n";
| ^~~~
/usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/basic_string.h:3733:5: note: declared here
3733 | operator+(basic_string<_CharT, _Traits, _Alloc>&& __lhs,
| ^~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Packet.cpp:625:14: warning: variable 'encrypted' set but not used [-Wunused-but-set-variable]
625 | bool encrypted = true;
| ^~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp: In static member function 'static void* RNS::Utilities::Memory::pool_malloc(pool_info&, size_t)':
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:187:23: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct tlsf_stats'; use assignment or value-initialization instead [-Wclass-memaccess]
187 | memset(&stats, 0, sizeof(stats));
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:64:8: note: 'struct tlsf_stats' declared here
64 | struct tlsf_stats {
| ^~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp: In static member function 'static void RNS::Utilities::Memory::dump_pool_stats(pool_info&, const char*)':
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:234:15: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct tlsf_stats'; use assignment or value-initialization instead [-Wclass-memaccess]
234 | memset(&stats, 0, sizeof(stats));
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:64:8: note: 'struct tlsf_stats' declared here
64 | struct tlsf_stats {
| ^~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp: In static member function 'static void RNS::Utilities::Memory::dump_basic_pool_stats()':
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:256:23: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct tlsf_stats'; use assignment or value-initialization instead [-Wclass-memaccess]
256 | memset(&stats, 0, sizeof(stats));
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:64:8: note: 'struct tlsf_stats' declared here
64 | struct tlsf_stats {
| ^~~~~~~~~~
.pio/libdeps/jp_native/MsgPack/MsgPack/Packer.h:85:30: warning: 'template<long unsigned int N> class ArduinoJson::V743HB42::StaticJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
85 | void serialize(const StaticJsonDocument<N>& doc, const size_t num_max_string_type = 32) {
| ^~~~~~~~~~~~~~~~~~
.pio/libdeps/jp_native/ArduinoJson/src/ArduinoJson/compatibility.hpp:63:58: note: declared here
63 | class ARDUINOJSON_DEPRECATED("use JsonDocument instead") StaticJsonDocument
| ^~~~~~~~~~~~~~~~~~
.pio/libdeps/jp_native/MsgPack/MsgPack/Packer.h:88:93: warning: 'DynamicJsonDocument' is deprecated: use JsonDocument instead [-Wdeprecated-declarations]
88 | void serialize(const DynamicJsonDocument& doc, const size_t num_max_string_type = 32) {
| ^
.pio/libdeps/jp_native/ArduinoJson/src/ArduinoJson/compatibility.hpp:125:58: note: declared here
125 | class ARDUINOJSON_DEPRECATED("use JsonDocument instead") DynamicJsonDocument
| ^~~~~~~~~~~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:269:23: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct tlsf_stats'; use assignment or value-initialization instead [-Wclass-memaccess]
269 | memset(&stats, 0, sizeof(stats));
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:64:8: note: 'struct tlsf_stats' declared here
64 | struct tlsf_stats {
| ^~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:282:23: warning: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct tlsf_stats'; use assignment or value-initialization instead [-Wclass-memaccess]
282 | memset(&stats, 0, sizeof(stats));
| ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Utilities/Memory.cpp:64:8: note: 'struct tlsf_stats' declared here
64 | struct tlsf_stats {
| ^~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Link.cpp: In static member function 'static uint16_t RNS::Link::mtu_from_lr_packet(const RNS::Packet&)':
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:146:93: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses]
146 | return (packet.data()[ECPUBSIZE] << 16) + (packet.data()[ECPUBSIZE+1] << 8) + (packet.data()[ECPUBSIZE+2]) & MTU_BYTEMASK;
/usr/local/src/microreticulum/microReticulum/src/Link.cpp: In static member function 'static uint16_t RNS::Link::mtu_from_lp_packet(const RNS::Packet&)':
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:155:67: warning: suggest parentheses around '+' in operand of '&' [-Wparentheses]
155 | return (mtu_bytes[0] << 16) + (mtu_bytes[1] << 8) + (mtu_bytes[2]) & MTU_BYTEMASK;
/usr/local/src/microreticulum/microReticulum/src/Link.cpp: In member function 'void RNS::Link::receive(const RNS::Packet&)':
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1266:52: warning: unused variable 'resource' [-Wunused-variable]
1266 | for (auto& resource : _object->_incoming_resources) {
| ^~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'RESOURCE_ADV' not handled in switch [-Wswitch]
1032 | switch (packet.context()) {
| ^
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'RESOURCE_REQ' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'RESOURCE_HMU' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'RESOURCE_PRF' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'RESOURCE_ICL' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'RESOURCE_RCL' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'CACHE_REQUEST' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'PATH_RESPONSE' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'COMMAND' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'COMMAND_STATUS' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'CHANNEL' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'LINKPROOF' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1032:40: warning: enumeration value 'LRPROOF' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Link.cpp:1031:38: warning: variable 'should_query' set but not used [-Wunused-but-set-variable]
1031 | bool should_query = false;
| ^~~~~~~~~~~~
Compiling .pio/build/jp_native/libd98/microReticulum/Utilities/tlsf.o
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Interface.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Persistence/DestinationEntry.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Persistence/DestinationEntry.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
Compiling .pio/build/jp_native/libd98/microReticulum/main.o
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Destination.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Resource.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Resource.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Destination.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Link.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Transport.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Transport.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Destination.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Link.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Transport.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Reticulum.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Reticulum.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23,
from /usr/local/src/microreticulum/microReticulum/src/Persistence/DestinationEntry.h:18:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
/usr/local/src/microreticulum/microReticulum/src/Resource.h: At global scope:
/usr/local/src/microreticulum/microReticulum/src/Resource.h:108:17: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
108 | const Type::Resource::status status() const;
| ^~~~~
/usr/local/src/microreticulum/microReticulum/src/Resource.h:109:17: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
109 | const size_t size() const;
| ^~~~~
/usr/local/src/microreticulum/microReticulum/src/Resource.h:110:17: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
110 | const size_t total_size() const;
| ^~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23,
from /usr/local/src/microreticulum/microReticulum/src/ResourceData.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Resource.cpp:17:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Utilities/../Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Utilities/../Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
/usr/local/src/microreticulum/microReticulum/src/Resource.cpp: At global scope:
/usr/local/src/microreticulum/microReticulum/src/Resource.cpp:120:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
120 | const Type::Resource::status Resource::status() const {
| ^~~~~
/usr/local/src/microreticulum/microReticulum/src/Resource.cpp:125:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
125 | const size_t Resource::size() const {
| ^~~~~
/usr/local/src/microreticulum/microReticulum/src/Resource.cpp:130:1: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
130 | const size_t Resource::total_size() const {
| ^~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Identity.h:18,
from /usr/local/src/microreticulum/microReticulum/src/Destination.h:20,
from /usr/local/src/microreticulum/microReticulum/src/Link.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Transport.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/Persistence.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/Persistence.cpp:15:
/usr/local/src/microreticulum/microReticulum/src/Bytes.h: In member function 'const RNS::Bytes::Data& RNS::Bytes::collection() const':
/usr/local/src/microreticulum/microReticulum/src/Bytes.h:368:76: warning: returning reference to temporary [-Wreturn-local-addr]
368 | inline const Data& collection() const { if (!_data) return Data(); return *_data.get(); }
| ^~~~~~
/usr/local/src/microreticulum/microReticulum/src/Reticulum.cpp: In member function 'void RNS::Reticulum::clean_caches()':
/usr/local/src/microreticulum/microReticulum/src/Reticulum.cpp:352:16: warning: unused variable 'now' [-Wunused-variable]
352 | double now = OS::time();
| ^~~
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp: In static member function 'static bool RNS::Transport::packet_filter(const RNS::Packet&)':
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'CONTEXT_NONE' not handled in switch [-Wswitch]
1271 | switch (packet.context()) {
| ^
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'RESOURCE_ADV' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'RESOURCE_HMU' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'RESOURCE_ICL' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'RESOURCE_RCL' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'REQUEST' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'RESPONSE' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'PATH_RESPONSE' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'COMMAND' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'COMMAND_STATUS' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'LINKIDENTIFY' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'LINKCLOSE' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'LINKPROOF' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'LRRTT' not handled in switch [-Wswitch]
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:1271:16: warning: enumeration value 'LRPROOF' not handled in switch [-Wswitch]
In file included from .pio/libdeps/jp_native/microStore/include/microStore/FileSystem.h:17,
from /usr/local/src/microreticulum/microReticulum/src/Utilities/OS.h:19,
from /usr/local/src/microreticulum/microReticulum/src/Packet.h:23:
.pio/libdeps/jp_native/microStore/include/microStore/File.h: In member function 'size_t microStore::File::read(uint8_t*, size_t)':
.pio/libdeps/jp_native/microStore/include/microStore/File.h:116:137: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
116 | inline size_t read(uint8_t* buffer, size_t size) { assert(_impl); size_t read = _impl->read(buffer, size); if (read > 0 && read != -1) _crc = crc32(_crc, buffer, read); return read; }
| ~~~~~^~~~~
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp: In static member function 'static void RNS::Transport::inbound(const RNS::Bytes&, const RNS::Interface&)':
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:2152:85: warning: unused variable 'announce_context' [-Wunused-variable]
2152 | Type::Packet::context_types announce_context = Type::Packet::CONTEXT_NONE;
| ^~~~~~~~~~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp: In static member function 'static bool RNS::Transport::clear_cached_packet(const RNS::Bytes&)':
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:2843:22: warning: unused variable 'success' [-Wunused-variable]
2843 | bool success = RNS::Utilities::OS::remove_file(packet_cache_path);
| ^~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp: In static member function 'static void RNS::Transport::path_request(const RNS::Bytes&, bool, const RNS::Interface&, const RNS::Bytes&, const RNS::Bytes&)':
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:3297:30: warning: unused variable 'next_hop' [-Wunused-variable]
3297 | const Bytes& next_hop = destination_entry._received_from;
| ^~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:3260:14: warning: variable 'destination_exists_on_local_client' set but not used [-Wunused-but-set-variable]
3260 | bool destination_exists_on_local_client = false;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/src/microreticulum/microReticulum/src/Persistence/DestinationEntry.h:23,
from /usr/local/src/microreticulum/microReticulum/src/Transport.h:21:
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h: In instantiation of 'microStore::BasicFileStore<Allocator>::BasicFileStore(const Allocator&, uint32_t, uint8_t) [with Allocator = RNS::Utilities::Memory::ContainerAllocator<unsigned char>; uint32_t = unsigned int; uint8_t = unsigned char]':
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h:125:181: required from 'microStore::BasicFileStore<Allocator>::BasicFileStore(uint32_t, uint8_t) [with Allocator = RNS::Utilities::Memory::ContainerAllocator<unsigned char>; uint32_t = unsigned int; uint8_t = unsigned char]'
125 | BasicFileStore(uint32_t segment_size = USTORE_DEFAULT_SEGMENT_SIZE, uint8_t segment_count = USTORE_DEFAULT_SEGMENT_COUNT) : BasicFileStore(Allocator{}, segment_size, segment_count) {}
| ^
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:147:102: required from here
147 | /*static*/ PathStore Transport::_path_store(RNS_PATH_TABLE_SEGMENT_SIZE, RNS_PATH_TABLE_SEGMENT_COUNT);
| ^
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h:1451:19: warning: 'microStore::BasicFileStore<RNS::Utilities::Memory::ContainerAllocator<unsigned char> >::_alloc' will be initialized after [-Wreorder]
1451 | Allocator _alloc;
| ^~~~~~
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h:1432:18: warning: 'uint32_t microStore::BasicFileStore<RNS::Utilities::Memory::ContainerAllocator<unsigned char> >::_segment_size' [-Wreorder]
1432 | uint32_t _segment_size = USTORE_DEFAULT_SEGMENT_SIZE;
| ^~~~~~~~~~~~~
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h:126:18: warning: when initialized here [-Wreorder]
126 | explicit BasicFileStore(const Allocator& alloc, uint32_t segment_size = USTORE_DEFAULT_SEGMENT_SIZE, uint8_t segment_count = USTORE_DEFAULT_SEGMENT_COUNT)
| ^~~~~~~~~~~~~~
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h: In instantiation of 'const char* microStore::BasicFileStore<Allocator>::bin_str(const uint8_t*, size_t) [with Allocator = RNS::Utilities::Memory::ContainerAllocator<unsigned char>; uint8_t = unsigned char; size_t = long unsigned int]':
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h:327:61: required from 'bool microStore::BasicFileStore<Allocator>::get(const uint8_t*, uint8_t, uint8_t*, uint16_t*) [with Allocator = RNS::Utilities::Memory::ContainerAllocator<unsigned char>; uint8_t = unsigned char; uint16_t = short unsigned int]'
327 | printf("[ustore] get: fetching key %s with data size %u\n", bin_str(key, key_len), *size);
| ^~~~~~~
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h:418:11: required from 'bool microStore::BasicFileStore<Allocator>::get(const std::vector<unsigned char>&, std::vector<unsigned char>&) [with Allocator = RNS::Utilities::Memory::ContainerAllocator<unsigned char>]'
418 | if (!get(key.data(), (uint8_t)key.size(), out.data(), &size)) {
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.pio/libdeps/jp_native/microStore/include/microStore/TypedStore.h:52:23: required from 'bool microStore::TypedStore<Key, Value, Store, KeyCodec, ValueCodec>::get(const Key&, Value&) [with Key = RNS::Bytes; Value = RNS::Persistence::DestinationEntry; Store = microStore::BasicFileStore<RNS::Utilities::Memory::ContainerAllocator<unsigned char> >; KeyCodec = microStore::Codec<RNS::Bytes>; ValueCodec = microStore::Codec<RNS::Persistence::DestinationEntry>]'
52 | if (!store.get(k, raw)) return false;
| ~~~~~~~~~^~~~~~~~
/usr/local/src/microreticulum/microReticulum/src/Transport.cpp:856:21: required from here
856 | _new_path_table.get(packet.destination_hash(), destination_entry);
| ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.pio/libdeps/jp_native/microStore/include/microStore/FileStore.h:1016:35: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare]
1016 | for (int i = 0; i < len && i < USTORE_MAX_VALUE_LEN; ++i) {
| ~~^~~~~
Archiving .pio/build/jp_native/libd98/libmicroReticulum.a
Indexing .pio/build/jp_native/libd98/libmicroReticulum.a
Linking .pio/build/jp_native/program
==================================================== [SUCCESS] Took 24.24 seconds ====================================================
Environment Status Duration
------------- -------- ------------
jp_native SUCCESS 00:00:24.240
===================================================== 1 succeeded in 00:00:24.240 =====================================================
***************************************************************************************************************************************
We found 13.44MB of unnecessary PlatformIO system data (temporary files, unnecessary packages, etc.).
Use `pio system prune --dry-run` to list them or `pio system prune` to save disk space.
(pioenv) jlpoole@eos /usr/local/src/microreticulum/microReticulumTbeam $ exercises/306_microReticulum_ble_file_transfer_oled/.pio/build/jp_native/program
Exercise 306 jp native BLE file transfer console
Node=Node-JP-CLIENT
Selected file=little_boy_blue.txt bytes=942 chunk=32 interval_ms=500 repeat_rest_ms=10000
[ustore] Initializing PosixFileSystem
[ustore] WARNING: FlashFSFileSystem check failed, reformatting!
BLE linux-central: could not power adapter: GDBus.Error:org.bluez.Error.Failed: Failed
Local SINGLE destination: f16c76446663db34420ad557e068964b
microReticulum ready; OLED skipped on host native build
BLE linux-central waiting for peer
BLE linux-central waiting for peer
BLE linux-central waiting for peer

BIN
img/DSC_5347_v1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB