浏览代码

feat: add support for arduino-pico sdk

Ayush Sharma 1 周之前
父节点
当前提交
7286da780e
共有 8 个文件被更改,包括 57 次插入28 次删除
  1. 5 0
      examples/Demo/Demo.ino
  2. 5 0
      examples/Demo_AP/Demo_AP.ino
  3. 9 4
      examples/HighPerf/HighPerf.ino
  4. 9 4
      examples/Logging/Logging.ino
  5. 6 6
      library.json
  6. 2 2
      library.properties
  7. 4 2
      src/WebSerial.cpp
  8. 17 10
      src/WebSerial.h

+ 5 - 0
examples/Demo/Demo.ino

@@ -13,6 +13,8 @@
   Works with following hardware:
   - ESP8266
   - ESP32
+  - RP2040+W
+  - RP2350+W
 
   WebSerial terminal will be accessible at your microcontroller's <IPAddress>/webserial URL.
 
@@ -26,6 +28,9 @@
 #elif defined(ESP32)
   #include <WiFi.h>
   #include <AsyncTCP.h>
+#elif defined(TARGET_RP2040) || defined(TARGET_RP2350) || defined(PICO_RP2040) || defined(PICO_RP2350)
+  #include <WiFi.h>
+  #include <RPAsyncTCP.h>
 #endif
 #include <ESPAsyncWebServer.h>
 #include <WebSerial.h>

+ 5 - 0
examples/Demo_AP/Demo_AP.ino

@@ -13,6 +13,8 @@
   Works with following hardware:
   - ESP8266
   - ESP32
+  - RP2040+W
+  - RP2350+W
 
   WebSerial terminal will be accessible at your microcontroller's <IPAddress>/webserial URL.
 
@@ -26,6 +28,9 @@
 #elif defined(ESP32)
   #include <WiFi.h>
   #include <AsyncTCP.h>
+#elif defined(TARGET_RP2040) || defined(TARGET_RP2350) || defined(PICO_RP2040) || defined(PICO_RP2350)
+  #include <WiFi.h>
+  #include <RPAsyncTCP.h>
 #endif
 #include <ESPAsyncWebServer.h>
 #include <WebSerial.h>

+ 9 - 4
examples/HighPerf/HighPerf.ino

@@ -17,13 +17,18 @@
  *  -D WS_MAX_QUEUED_MESSAGES=128
  */
 #include <Arduino.h>
+
 #if defined(ESP8266)
-#include <ESP8266WiFi.h>
-#include <ESPAsyncTCP.h>
+  #include <ESP8266WiFi.h>
+  #include <ESPAsyncTCP.h>
 #elif defined(ESP32)
-#include <AsyncTCP.h>
-#include <WiFi.h>
+  #include <WiFi.h>
+  #include <AsyncTCP.h>
+#elif defined(TARGET_RP2040) || defined(TARGET_RP2350) || defined(PICO_RP2040) || defined(PICO_RP2350)
+  #include <WiFi.h>
+  #include <RPAsyncTCP.h>
 #endif
+
 #include <DNSServer.h>
 #include <ESPAsyncWebServer.h>
 #include <WString.h>

+ 9 - 4
examples/Logging/Logging.ino

@@ -9,13 +9,18 @@
  *  -D WS_MAX_QUEUED_MESSAGES=128
  */
 #include <Arduino.h>
+
 #if defined(ESP8266)
-#include <ESP8266WiFi.h>
-#include <ESPAsyncTCP.h>
+  #include <ESP8266WiFi.h>
+  #include <ESPAsyncTCP.h>
 #elif defined(ESP32)
-#include <AsyncTCP.h>
-#include <WiFi.h>
+  #include <WiFi.h>
+  #include <AsyncTCP.h>
+#elif defined(TARGET_RP2040) || defined(TARGET_RP2350) || defined(PICO_RP2040) || defined(PICO_RP2350)
+  #include <WiFi.h>
+  #include <RPAsyncTCP.h>
 #endif
+
 #include <DNSServer.h>
 #include <ESPAsyncWebServer.h>
 #include <WString.h>

+ 6 - 6
library.json

@@ -1,6 +1,6 @@
 {
   "name": "WebSerial",
-  "keywords": "WebSerial, remote, terminal, serial, monitor, ESP8266, ESP32, webpage, websocket, wireless",
+  "keywords": "WebSerial, remote, terminal, serial, monitor, ESP8266, ESP32, RP2040, RP2350, webpage, websocket, wireless",
   "description": "WebSerial is a remote terminal which is accessible via browser to log, monitor or debug your firmware remotely.",
   "repository":
   {
@@ -15,15 +15,15 @@
       "maintainer": true
     }
   ],
-  "version": "2.0.8",
+  "version": "2.1.0",
   "frameworks": "arduino",
-  "platforms": ["espressif8266", "espressif32"],
+  "platforms": ["espressif8266", "espressif32", "raspberrypi"],
   "dependencies": [
     {
-      "owner": "mathieucarbou",
+      "owner": "esp32async",
       "name": "ESPAsyncWebServer",
-      "version": "^3.3.17",
-      "platforms": ["espressif8266", "espressif32"]
+      "version": "^3.7.3",
+      "platforms": ["espressif8266", "espressif32", "raspberrypi"]
     }
   ]
 }

+ 2 - 2
library.properties

@@ -1,9 +1,9 @@
 name=WebSerial
-version=2.0.8
+version=2.1.0
 author=Ayush Sharma
 category=Communication
 maintainer=Ayush Sharma <asrocks5@gmail.com>
 sentence=Remote terminal for wireless microcontrollers
 paragraph=WebSerial is a remote terminal which is accessible via browser to log, monitor or debug your firmware remotely.
 url=https://github.com/ayushsharma82/WebSerial
-architectures=esp8266,esp32
+architectures=esp8266,esp32,rp2040

+ 4 - 2
src/WebSerial.cpp

@@ -127,10 +127,12 @@ size_t WebSerialClass::write(uint8_t m) {
   // We do not support non-buffered write on webserial for the HIGH_PERF version
   // we fail with a stack trace allowing the user to change the code to use write(const uint8_t* buffer, size_t size) instead
   if(!_initialBufferCapacity) {
-#ifdef ESP8266
+#ifdef defined(ESP8266)
     ets_printf("Non-buffered write is not supported. Please use write(const uint8_t* buffer, size_t size) instead.");
-#else
+#elif defined(ESP32)
     log_e("Non-buffered write is not supported. Please use write(const uint8_t* buffer, size_t size) instead.");
+#elif defined(TARGET_RP2040) || defined(TARGET_RP2350) || defined(PICO_RP2040) || defined(PICO_RP2350)
+    Serial.println("Non-buffered write is not supported. Please use write(const uint8_t* buffer, size_t size) instead.");
 #endif
     assert(false);
     return 0;

+ 17 - 10
src/WebSerial.h

@@ -24,15 +24,24 @@ License: AGPL-3.0 (https://www.gnu.org/licenses/agpl-3.0.html)
 #include <functional>
 
 #if defined(ESP8266)
-    #define HARDWARE "ESP8266"
-    #include "ESP8266WiFi.h"
-    #include "ESPAsyncTCP.h"
-    #include "ESPAsyncWebServer.h"
+  #define HARDWARE "ESP8266"
+  #include "ESP8266WiFi.h"
+  #include "ESPAsyncTCP.h"
+  #include "ESPAsyncWebServer.h"
 #elif defined(ESP32)
-    #define HARDWARE "ESP32"
-    #include "WiFi.h"
-    #include "AsyncTCP.h"
-    #include "ESPAsyncWebServer.h"
+  #define HARDWARE "ESP32"
+  #include "WiFi.h"
+  #include "AsyncTCP.h"
+  #include "ESPAsyncWebServer.h"
+#elif defined(TARGET_RP2040) || defined(TARGET_RP2350) || defined(PICO_RP2040) || defined(PICO_RP2350)
+  #include "WiFi.h"
+  #include "RPAsyncTCP.h"
+  #include "ESPAsyncWebServer.h"
+  #if defined(TARGET_RP2040) || defined(PICO_RP2040)
+    #define HARDWARE "RP2040"
+  #elif defined(TARGET_RP2350) || defined(PICO_RP2350)
+    #define HARDWARE "RP2350"
+  #endif
 #endif
 
 #ifndef WSL_MAX_WS_CLIENTS
@@ -116,7 +125,6 @@ class WebSerialClass : public Print {
     void setBuffer(size_t initialCapacity);
 
 #ifdef WSL_HIGH_PERF
-  #ifdef ASYNCWEBSERVER_FORK_mathieucarbou
     // Expose the internal WebSocket makeBuffer to even improve memory consumption on client-side
     // 1. make a AsyncWebSocketMessageBuffer
     // 2. put the data inside
@@ -135,7 +143,6 @@ class WebSerialClass : public Print {
       if (_ws->count())
         _ws->textAll(buffer);
     }
-  #endif
 #endif
 
   private: