Skip to content
This repository was archived by the owner on Feb 4, 2023. It is now read-only.

Commit 0c259b6

Browse files
authored
v1.4.0 to add LittleFS functions
#### Release v1.4.0 1. Add `LittleFS` functions such as AsyncFSWebServer 2. Add examples [AsyncFSWebServer](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/AsyncFSWebServer) and [AsyncFSWebServer_Complex](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/AsyncFSWebServer_Complex) to demo the new feature
1 parent b71cf4e commit 0c259b6

24 files changed

+1584
-275
lines changed

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ If you don't find anything, please [open a new issue](https://github.com/khoih-p
1515
Please ensure to specify the following:
1616

1717
* Arduino IDE version (e.g. 1.8.19) or Platform.io version
18-
* `RP2040` Core Version (e.g. RP2040 core v2.6.0)
18+
* `RP2040` Core Version (e.g. RP2040 core v2.6.1)
1919
* `RP2040W` Board type (e.g. RASPBERRY_PI_PICO_W)
2020
* Contextual information (e.g. what you were trying to achieve)
2121
* Simplest possible steps to reproduce
@@ -28,10 +28,10 @@ Please ensure to specify the following:
2828

2929
```
3030
Arduino IDE version: 1.8.19
31-
RP2040 core v2.6.0
31+
RP2040 core v2.6.1
3232
RASPBERRY_PI_PICO_W Module
3333
OS: Ubuntu 20.04 LTS
34-
Linux xy-Inspiron-3593 5.15.0-48-generic #54~20.04.1-Ubuntu SMP Thu Sep 1 16:17:26 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
34+
Linux xy-Inspiron-3593 5.15.0-50-generic #56~20.04.1-Ubuntu SMP Tue Sep 27 15:51:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
3535
3636
Context:
3737
I encountered a crash while using this library

README.md

Lines changed: 66 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
## Table of contents
1616

1717
* [Table of contents](#table-of-contents)
18+
* [Important Note from v1.4.0](#Important-Note-from-v140)
1819
* [Important Note from v1.2.0](#Important-Note-from-v120)
1920
* [Why do we need this AsyncWebServer_RP2040W library](#why-do-we-need-this-AsyncWebServer_RP2040W-library)
2021
* [Features](#features)
@@ -93,6 +94,8 @@
9394
* [14. Async_AdvancedWebServer_MemoryIssues_Send_CString](examples/Async_AdvancedWebServer_MemoryIssues_Send_CString) **New**
9495
* [15. Async_WebSocketsServer](examples/Async_WebSocketsServer) **New**
9596
* [16. Async_WebSocketsServer_Xtreme](examples/Async_WebSocketsServer_Xtreme) **New**
97+
* [17. AsyncFSWebServer](examples/AsyncFSWebServer) **New**
98+
* [18. AsyncFSWebServer_Complex](examples/AsyncFSWebServer_Complex) **New**
9699
* [Example Async_AdvancedWebServer](#Example-Async_AdvancedWebServer)
97100
* [Debug Terminal Output Samples](#debug-terminal-output-samples)
98101
* [1. Async_AdvancedWebServer on RASPBERRY_PI_PICO_W using CYW43439 WiFi](#1-Async_AdvancedWebServer-on-RASPBERRY_PI_PICO_W-using-CYW43439-WiFi)
@@ -105,6 +108,7 @@
105108
* [8. Async_AdvancedWebServer_MemoryIssues_Send_CString on RASPBERRY_PI_PICO_W](#8-Async_AdvancedWebServer_MemoryIssues_Send_CString-on-RASPBERRY_PI_PICO_W)
106109
* [9. Async_WebSocketsServer on RASPBERRY_PI_PICO_W using CYW43439 WiFi](#9-Async_WebSocketsServer-on-RASPBERRY_PI_PICO_W-using-CYW43439-WiFi)
107110
* [10. Async_WebSocketsServer_Xtreme on RASPBERRY_PI_PICO_W using CYW43439 WiFi](#10-Async_WebSocketsServer_Xtreme-on-RASPBERRY_PI_PICO_W-using-CYW43439-WiFi)
111+
* [11. AsyncFSWebServer_Complex on RASPBERRY_PI_PICO_W using CYW43439 WiFi](#11-AsyncFSWebServer_Complex-on-RASPBERRY_PI_PICO_W-using-CYW43439-WiFi)
108112
* [Debug](#debug)
109113
* [Troubleshooting](#troubleshooting)
110114
* [Issues](#issues)
@@ -118,6 +122,21 @@
118122
---
119123
---
120124

125+
### Important Note from v1.4.0
126+
127+
The new `v1.4.0+` has added a new and powerful feature to use `LittleFS` functions, such as AsyncFSWebServer
128+
129+
Check these new examples
130+
131+
1. [AsyncFSWebServer](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/AsyncFSWebServer)
132+
2. [AsyncFSWebServer_Complex](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/AsyncFSWebServer_Complex)
133+
134+
<p align="center">
135+
<img src="https://github.com/khoih-prog/AsyncWebServer_RP2040W/blob/main/pics/AsyncFSWebServer_Complex.png">
136+
</p>
137+
138+
---
139+
121140
### Important Note from v1.2.0
122141

123142
The new `v1.2.0+` has added a new and powerful feature to permit using `CString` to save heap to send `very large data`.
@@ -188,7 +207,6 @@ request->send(200, textPlainStr, cStr, false);
188207
The required additional HEAP is about **1 times of the CString size**. This way is the best and **most efficient way** to use by avoiding of `unnecessary copies` of the CString in HEAP
189208

190209

191-
192210
---
193211
---
194212

@@ -235,7 +253,7 @@ to apply the better and faster **asynchronous** feature of the **powerful** [ESP
235253
## Prerequisites
236254

237255
1. [`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [![GitHub release](https://img.shields.io/github/release/arduino/Arduino.svg)](https://github.com/arduino/Arduino/releases/latest)
238-
2. [`Earle Philhower's arduino-pico core v2.6.0+`](https://github.com/earlephilhower/arduino-pico) for **RASPBERRY_PI_PICO_W with CYW43439 WiFi**, etc. [![GitHub release](https://img.shields.io/github/release/earlephilhower/arduino-pico.svg)](https://github.com/earlephilhower/arduino-pico/releases/latest)
256+
2. [`Earle Philhower's arduino-pico core v2.6.1+`](https://github.com/earlephilhower/arduino-pico) for **RASPBERRY_PI_PICO_W with CYW43439 WiFi**, etc. [![GitHub release](https://img.shields.io/github/release/earlephilhower/arduino-pico.svg)](https://github.com/earlephilhower/arduino-pico/releases/latest)
239257
3. [`AsyncTCP_RP2040W library v1.1.0+`](https://github.com/khoih-prog/AsyncTCP_RP2040W) for RASPBERRY_PI_PICO_W with CYW43439 WiFi. [![GitHub release](https://img.shields.io/github/release/khoih-prog/AsyncTCP_RP2040W.svg)](https://github.com/khoih-prog/AsyncTCP_RP2040W/releases/latest)
240258

241259
---
@@ -790,6 +808,7 @@ request->send(response);
790808
---
791809

792810
## Param Rewrite With Matching
811+
793812
It is possible to rewrite the request url with parameter matchg. Here is an example with one parameter:
794813
Rewrite for example "/radio/{frequence}" -> "/radio?f={frequence}"
795814

@@ -893,7 +912,6 @@ without starting another listening service or using different port
893912
### Async WebSocket Event
894913
895914
```cpp
896-
897915
void onEvent(AsyncWebSocket * server, AsyncWebSocketClient * client, AwsEventType type, void * arg, uint8_t *data, size_t len)
898916
{
899917
if(type == WS_EVT_CONNECT)
@@ -1511,7 +1529,9 @@ build_flags =
15111529
13. [Async_AdvancedWebServer_MemoryIssues_SendArduinoString](examples/Async_AdvancedWebServer_MemoryIssues_SendArduinoString) **New**
15121530
14. [Async_AdvancedWebServer_MemoryIssues_Send_CString](examples/Async_AdvancedWebServer_MemoryIssues_Send_CString) **New**
15131531
15. [Async_WebSocketsServer](examples/Async_WebSocketsServer) **New**
1514-
15. [Async_WebSocketsServer_Xtreme](examples/Async_WebSocketsServer_Xtreme) **New**
1532+
16. [Async_WebSocketsServer_Xtreme](examples/Async_WebSocketsServer_Xtreme) **New**
1533+
17. [AsyncFSWebServer](examples/AsyncFSWebServer) **New**
1534+
18. [AsyncFSWebServer_Complex](examples/AsyncFSWebServer_Complex) **New**
15151535

15161536

15171537
---
@@ -1915,6 +1935,45 @@ You can access the Async_WebSockets Servers at the displayed server IP, e.g. `19
19151935
</p>
19161936

19171937

1938+
---
1939+
1940+
1941+
#### 11. AsyncFSWebServer_Complex on RASPBERRY_PI_PICO_W with RP2040W CYW43439 WiFi
1942+
1943+
Following is debug terminal output when running example [AsyncFSWebServer_Complex](examples/AsyncFSWebServer_Complex) on RASPBERRY_PI_PICO_W using CYW43439 WiFi.
1944+
1945+
1946+
```
1947+
Start AsyncFSWebServer_Complex on RASPBERRY_PI_PICO_W with RP2040W CYW43439 WiFi
1948+
AsyncTCP_RP2040W v1.1.0
1949+
AsyncWebServer_RP2040W v1.4.0
1950+
Connecting to SSID: HueNet1
1951+
SSID: HueNet1
1952+
Local IP Address: 192.168.2.77
1953+
Opening / directory
1954+
FS File: CanadaFlag_1.png, size: 40.25KB
1955+
FS File: CanadaFlag_2.png, size: 8.12KB
1956+
FS File: CanadaFlag_3.jpg, size: 10.89KB
1957+
FS File: css, size: 0B
1958+
FS File: edit.htm.gz, size: 4.02KB
1959+
FS File: favicon.ico, size: 1.12KB
1960+
FS File: graphs.js.gz, size: 1.92KB
1961+
FS File: index.htm, size: 3.63KB
1962+
FS File: js, size: 0B
1963+
1964+
AsyncWebServer started @192.168.2.77
1965+
Open http://192.168.2.77/edit to see the file browser
1966+
AsyncFSEditor::handleRequest: Sending AsyncWebServerResponse
1967+
1968+
```
1969+
1970+
1971+
You can access the Async_WebSockets Servers at the displayed server IP, e.g. `192.168.2.77`
1972+
1973+
<p align="center">
1974+
<img src="https://github.com/khoih-prog/AsyncWebServer_RP2040W/blob/main/pics/AsyncFSWebServer_Complex.png">
1975+
</p>
1976+
19181977

19191978
---
19201979
---
@@ -1961,7 +2020,9 @@ Submit issues to: [AsyncWebServer_RP2040W issues](https://github.com/khoih-prog/
19612020
7. Support using `CString` to save heap to send `very large data`. Check [request->send(200, textPlainStr, jsonChartDataCharStr); - Without using String Class - to save heap #8](https://github.com/khoih-prog/Portenta_H7_AsyncWebServer/pull/8)
19622021
8. Fix `crash` when using `AsyncWebSockets server` and add example [Async_WebSocketsServer](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/Async_WebSocketsServer) to demo the AsyncWebSockets Server with a Python [WSClient.py](examples/Async_WebSocketsServer/WSClient_Python/WSClient.py)
19632022
9. Improve robustness of AsyncWebSockets server. Check [AsyncWebSocketServer_RP2040W crashes with "[AWS] ERROR: Too many messages queued" #6](https://github.com/khoih-prog/AsyncWebServer_RP2040W/issues/6) and add example [Async_WebSocketsServer_Xtreme](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/Async_WebSocketsServer_Xtreme) to demo the nearly highest possible WebSockets Server speed
1964-
2023+
10. Add `LittleFS` functions such as `AsyncFSWebServer`
2024+
2025+
19652026
---
19662027
---
19672028

changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
## Table of Contents
1212

1313
* [Changelog](#changelog)
14+
* [Release v1.4.0](#Release-v140)
1415
* [Release v1.3.1](#Release-v131)
1516
* [Release v1.3.0](#Release-v130)
1617
* [Release v1.2.1](#Release-v121)
@@ -28,6 +29,11 @@
2829

2930
## Changelog
3031

32+
#### Release v1.4.0
33+
34+
1. Add `LittleFS` functions such as AsyncFSWebServer
35+
2. Add examples [AsyncFSWebServer](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/AsyncFSWebServer) and [AsyncFSWebServer_Complex](https://github.com/khoih-prog/AsyncWebServer_RP2040W/tree/main/examples/AsyncFSWebServer_Complex) to demo the new feature
36+
3137
#### Release v1.3.1
3238

3339
1. Improve robustness of AsyncWebSockets server. Check [AsyncWebSocketServer_RP2040W crashes with "[AWS] ERROR: Too many messages queued" #6](https://github.com/khoih-prog/AsyncWebServer_RP2040W/issues/6)

library.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "AsyncWebServer_RP2040W",
3-
"version": "1.3.1",
3+
"version": "1.4.0",
44
"keywords": "http, async, websocket, webserver, async-webserver, async-tcp, async-udp, async-websocket, async-http, ssl, tls, rp2040, rp2040w, raspberry-pi-pico-w, cyw43439, wifi",
55
"description": "Asynchronous WebServer Library for RASPBERRY_PI_PICO_W using CYW43439 WiFi with arduino-pico core. This library, which is relied on AsyncTCP_RP2040W, is part of a series of advanced Async libraries for RP2040W, such as AsyncTCP_RP2040W, AsyncUDP_RP2040W, AsyncWebServer_RP2040W, AsyncHTTPRequest_RP2040W, AsyncHTTPSRequest_RP2040W, etc. Now can display programmed WiFi country-code and support using CString to save heap to send very large data",
66
"authors":
@@ -41,5 +41,5 @@
4141
"frameworks": "*",
4242
"platforms": "raspberrypi",
4343
"examples": "examples/*/*/*.ino",
44-
"headers": "AsyncWebServer_RP2040W.h"
44+
"headers": ["AsyncWebServer_RP2040W.h", "AsyncFSEditor_RP2040W.h"]
4545
}

library.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=AsyncWebServer_RP2040W
2-
version=1.3.1
2+
version=1.4.0
33
author=Hristo Gochkov,Khoi Hoang
44
maintainer=Khoi Hoang <[email protected]>
55
sentence=Asynchronous WebServer Library for RASPBERRY_PI_PICO_W using CYW43439 WiFi with arduino-pico core.
@@ -10,4 +10,4 @@ architectures=rp2040
1010
repository=https://github.com/khoih-prog/AsyncWebServer_RP2040W
1111
license=GPLv3
1212
depends=AsyncTCP_RP2040W
13-
includes=AsyncWebServer_RP2040W.h
13+
includes=AsyncWebServer_RP2040W.h, AsyncFSEditor_RP2040W.h

src/AsyncEventSource_RP2040W.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W
1010
Licensed under GPLv3 license
1111
12-
Version: 1.3.1
12+
Version: 1.4.0
1313
1414
Version Modified By Date Comments
1515
------- ----------- ---------- -----------
@@ -23,6 +23,7 @@
2323
1.2.1 K Hoang 05/10/2022 Don't need memmove(), String no longer destroyed
2424
1.3.0 K Hoang 10/10/2022 Fix crash when using AsyncWebSockets server
2525
1.3.1 K Hoang 10/10/2022 Improve robustness of AsyncWebSockets server
26+
1.4.0 K Hoang 20/10/2022 Add LittleFS functions such as AsyncFSWebServer
2627
*****************************************************************************************************************************/
2728

2829
#if !defined(_RP2040W_AWS_LOGLEVEL_)

src/AsyncEventSource_RP2040W.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W
1010
Licensed under GPLv3 license
1111
12-
Version: 1.3.1
12+
Version: 1.4.0
1313
1414
Version Modified By Date Comments
1515
------- ----------- ---------- -----------
@@ -23,6 +23,7 @@
2323
1.2.1 K Hoang 05/10/2022 Don't need memmove(), String no longer destroyed
2424
1.3.0 K Hoang 10/10/2022 Fix crash when using AsyncWebSockets server
2525
1.3.1 K Hoang 10/10/2022 Improve robustness of AsyncWebSockets server
26+
1.4.0 K Hoang 20/10/2022 Add LittleFS functions such as AsyncFSWebServer
2627
*****************************************************************************************************************************/
2728

2829
#pragma once

0 commit comments

Comments
 (0)