Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit af1a452

Browse files
authoredFeb 3, 2025··
Merge branch 'main' into main
2 parents a382728 + 99b3454 commit af1a452

File tree

30 files changed

+1377
-339
lines changed

30 files changed

+1377
-339
lines changed
 

‎boards.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ portenta_c33.build.fpu=-mfpu=fpv5-sp-d16
1212
portenta_c33.build.float-abi=-mfloat-abi=hard
1313

1414
portenta_c33.build.board=PORTENTA_C33
15-
portenta_c33.build.defines=-DF_CPU=200000000
15+
portenta_c33.build.defines=-DF_CPU=200000000 -DPROVIDE_FREERTOS_HOOK
1616
portenta_c33.vid.0=0x2341
1717
portenta_c33.pid.0=0x0068
1818
portenta_c33.vid.1=0x2341

‎cores/arduino/Serial.cpp

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,14 @@ void UART::WrapperCallback(uart_callback_args_t *p_args) {
5858
{
5959
break;
6060
}
61-
case UART_EVENT_TX_COMPLETE:
62-
case UART_EVENT_TX_DATA_EMPTY:
61+
case UART_EVENT_TX_COMPLETE: // This is call when the transmission is complete
6362
{
64-
//uint8_t to_enqueue = uart_ptr->txBuffer.available() < uart_ptr->uart_ctrl.fifo_depth ? uart_ptr->txBuffer.available() : uart_ptr->uart_ctrl.fifo_depth;
65-
//while (to_enqueue) {
66-
uart_ptr->tx_done = true;
63+
uart_ptr->tx_complete = true;
64+
break;
65+
}
66+
case UART_EVENT_TX_DATA_EMPTY: // This is called when the buffer is empty
67+
{ // Last byte is transmitting, but ready for more data
68+
uart_ptr->tx_empty = true;
6769
break;
6870
}
6971
case UART_EVENT_RX_CHAR:
@@ -87,6 +89,8 @@ UART::UART(int _pin_tx, int _pin_rx, int _pin_rts, int _pin_cts):
8789
rx_pin(_pin_rx),
8890
rts_pin(_pin_rts),
8991
cts_pin(_pin_cts),
92+
tx_empty(true),
93+
tx_complete(true),
9094
init_ok(false) {
9195
/* -------------------------------------------------------------------------- */
9296
uart_cfg.txi_irq = FSP_INVALID_VECTOR;
@@ -109,9 +113,10 @@ bool UART::setUpUartIrqs(uart_cfg_t &cfg) {
109113
size_t UART::write(uint8_t c) {
110114
/* -------------------------------------------------------------------------- */
111115
if(init_ok) {
112-
tx_done = false;
116+
tx_empty = false;
117+
tx_complete = false;
113118
R_SCI_UART_Write(&uart_ctrl, &c, 1);
114-
while (!tx_done) {}
119+
while (!tx_empty) {}
115120
return 1;
116121
}
117122
else {
@@ -121,9 +126,10 @@ size_t UART::write(uint8_t c) {
121126

122127
size_t UART::write(uint8_t* c, size_t len) {
123128
if(init_ok) {
124-
tx_done = false;
129+
tx_empty = false;
130+
tx_complete = false;
125131
R_SCI_UART_Write(&uart_ctrl, c, len);
126-
while (!tx_done) {}
132+
while (!tx_empty) {}
127133
return len;
128134
}
129135
else {
@@ -322,7 +328,7 @@ int UART::read() {
322328
/* -------------------------------------------------------------------------- */
323329
void UART::flush() {
324330
/* -------------------------------------------------------------------------- */
325-
while(txBuffer.available());
331+
while(!tx_complete);
326332
}
327333

328334
/* -------------------------------------------------------------------------- */
@@ -335,4 +341,4 @@ size_t UART::write_raw(uint8_t* c, size_t len) {
335341
i++;
336342
}
337343
return len;
338-
}
344+
}

‎cores/arduino/Serial.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ class UART : public arduino::HardwareSerial {
7878
arduino::SafeRingBufferN<SERIAL_BUFFER_SIZE> rxBuffer;
7979
arduino::SafeRingBufferN<SERIAL_BUFFER_SIZE> txBuffer;
8080

81-
volatile bool tx_done;
81+
volatile bool tx_empty;
82+
volatile bool tx_complete;
8283

8384
sci_uart_instance_ctrl_t uart_ctrl;
8485
uart_cfg_t uart_cfg;

‎cores/arduino/main.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ void unsecure_registers() {
6464
#define str(s) #s
6565

6666
extern "C" void Stacktrace_Handler(void);
67+
extern "C" __attribute__((weak)) void start_freertos_on_header_inclusion() {}
6768

6869
void arduino_main(void)
6970
{
@@ -112,6 +113,9 @@ void arduino_main(void)
112113
#endif
113114
startAgt();
114115
setup();
116+
#ifdef PROVIDE_FREERTOS_HOOK
117+
start_freertos_on_header_inclusion();
118+
#endif
115119
while (1)
116120
{
117121
loop();

‎libraries/Arduino_FreeRTOS/src/portable/FSP/port.c

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,29 @@ static void prvTaskExitError(void);
225225

226226
#endif
227227

228+
#ifdef PROVIDE_FREERTOS_HOOK
229+
void loop_thread_func(void* arg) {
230+
while (1)
231+
{
232+
loop();
233+
}
234+
}
235+
236+
static TaskHandle_t loop_task;
237+
void start_freertos_on_header_inclusion() {
238+
xTaskCreate(
239+
(TaskFunction_t)loop_thread_func,
240+
"Loop Thread",
241+
4096 / 4, /* usStackDepth in words */
242+
NULL, /* pvParameters */
243+
4, /* uxPriority */
244+
&loop_task /* pxCreatedTask */
245+
);
246+
247+
vTaskStartScheduler();
248+
}
249+
#endif
250+
228251
/* Arduino specific overrides */
229252
void delay(uint32_t ms) {
230253
if (xTaskGetSchedulerState() == taskSCHEDULER_RUNNING) {

‎libraries/Arduino_LED_Matrix/examples/TextWithArduinoGraphics/TextWithArduinoGraphics.ino

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// TextAnimation works only when ArduinoGraphics is installed and used.
2+
// ArduinoGraphics is an external library and needs to be installed using
3+
// Library Manager.
14
// To use ArduinoGraphics APIs, please include BEFORE Arduino_LED_Matrix
25
#include "ArduinoGraphics.h"
36
#include "Arduino_LED_Matrix.h"

‎libraries/Arduino_LED_Matrix/examples/TextWithArduinoGraphicsAsynchronous/TextWithArduinoGraphicsAsynchronous.ino

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// TextAnimation works only when ArduinoGraphics is installed and used.
2+
// ArduinoGraphics is an external library and needs to be installed using
3+
// Library Manager.
14
// To use ArduinoGraphics APIs, please include BEFORE Arduino_LED_Matrix and TextAnimation
25
#include "ArduinoGraphics.h"
36
#include "Arduino_LED_Matrix.h"

‎libraries/ESPhost/examples/ESP32_TEST/ESP32_TEST.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ void connectAccessPoint() {
297297
int i = stoi(ap_str);
298298

299299
Serial.println(">>> [APP]: Connecting to Access Point");
300-
WifiApCfg_t ap;
300+
WifiApCfg_t ap{};
301301
memcpy(ap.ssid,access_point_list[i].ssid,SSID_LENGTH);
302302
memcpy(ap.pwd,pwd.c_str(),pwd.size());
303303
memcpy(ap.bssid,access_point_list[i].bssid,BSSID_LENGTH);
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
/*
2+
OTANonBlocking
3+
4+
This sketch demonstrates how to make an OTA Update on the UNO R4 WiFi.
5+
Upload the sketch and wait for the invasion!
6+
7+
It requires at least version 0.5.0 of USB Wifi bridge firmware
8+
9+
*/
10+
11+
12+
#include "WiFiS3.h"
13+
#include "OTAUpdate.h"
14+
#include "root_ca.h"
15+
#include "arduino_secrets.h"
16+
17+
char ssid[] = SECRET_SSID; // your network SSID (name)
18+
char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP)
19+
20+
int status = WL_IDLE_STATUS;
21+
22+
OTAUpdate ota;
23+
static char const OTA_FILE_LOCATION[] = "https://downloads.arduino.cc/ota/UNOR4WIFI_Animation.ota";
24+
25+
/* -------------------------------------------------------------------------- */
26+
void setup() {
27+
/* -------------------------------------------------------------------------- */
28+
//Initialize serial and wait for port to open:
29+
Serial.begin(115200);
30+
while (!Serial) {
31+
; // wait for serial port to connect. Needed for native USB port only
32+
}
33+
34+
// check for the Wi-Fi module:
35+
if (WiFi.status() == WL_NO_MODULE) {
36+
Serial.println("Communication with Wi-Fi module failed!");
37+
// don't continue
38+
while (true);
39+
}
40+
41+
String fv = WiFi.firmwareVersion();
42+
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
43+
Serial.println("Please upgrade the firmware");
44+
}
45+
46+
// attempt to connect to Wi-Fi network:
47+
while (status != WL_CONNECTED) {
48+
Serial.print("Attempting to connect to SSID: ");
49+
Serial.println(ssid);
50+
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
51+
status = WiFi.begin(ssid, pass);
52+
53+
// wait 1 seconds for connection:
54+
delay(1000);
55+
}
56+
57+
printWiFiStatus();
58+
59+
Serial.println("ota.begin()");
60+
int ret = ota.begin("/update.bin");
61+
if(ret != OTAUpdate::OTA_ERROR_NONE) {
62+
Serial.println("ota.begin() error: ");
63+
Serial.println((int)ret);
64+
return;
65+
}
66+
67+
Serial.println("ota.setCACert()");
68+
ret = ota.setCACert(root_ca);
69+
if(ret != OTAUpdate::OTA_ERROR_NONE) {
70+
Serial.println("ota.setCACert() error: ");
71+
Serial.println((int)ret);
72+
return;
73+
}
74+
75+
Serial.println("ota.startDownload()");
76+
int ota_size = ota.startDownload(OTA_FILE_LOCATION, "/update.bin");
77+
if(ota_size <= 0) {
78+
Serial.println("ota.startDownload() error: ");
79+
Serial.println(ota_size);
80+
Serial.println("Make sure your WiFi firmware version is at least 0.5.0");
81+
return;
82+
}
83+
84+
Serial.println("ota.downloadProgress()");
85+
while((ret = ota.downloadProgress()) < ota_size) {
86+
Serial.print("Progress ");
87+
Serial.print(ret);
88+
Serial.print("/");
89+
Serial.println(ota_size);
90+
delay(100);
91+
}
92+
93+
if(ret < 0){
94+
Serial.println("ota.downloadProgress() error: ");
95+
Serial.println((int)ret);
96+
return;
97+
}
98+
99+
Serial.println("ota.verify()");
100+
ret = ota.verify();
101+
if(ret != OTAUpdate::OTA_ERROR_NONE) {
102+
Serial.println("ota.verify() error: ");
103+
Serial.println((int)ret);
104+
return;
105+
}
106+
\
107+
Serial.println("ota.update()");
108+
ret = ota.update("/update.bin");
109+
if(ret != OTAUpdate::OTA_ERROR_NONE) {
110+
Serial.println("ota.update() error: ");
111+
Serial.println((int)ret);
112+
return;
113+
}
114+
}
115+
116+
/* -------------------------------------------------------------------------- */
117+
void loop() {
118+
/* -------------------------------------------------------------------------- */
119+
delay(1000);
120+
}
121+
122+
/* -------------------------------------------------------------------------- */
123+
void printWiFiStatus() {
124+
/* -------------------------------------------------------------------------- */
125+
// print the SSID of the network you're attached to:
126+
Serial.print("SSID: ");
127+
Serial.println(WiFi.SSID());
128+
129+
// print your board's IP address:
130+
IPAddress ip = WiFi.localIP();
131+
Serial.print("IP Address: ");
132+
Serial.println(ip);
133+
134+
// print the received signal strength:
135+
long rssi = WiFi.RSSI();
136+
Serial.print("signal strength (RSSI):");
137+
Serial.print(rssi);
138+
Serial.println(" dBm");
139+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define SECRET_SSID ""
2+
#define SECRET_PASS ""
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
const char* root_ca = \
2+
/* GTS Root R1 */
3+
"-----BEGIN CERTIFICATE-----\n" \
4+
"MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQsw\n" \
5+
"CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU\n" \
6+
"MBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw\n" \
7+
"MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp\n" \
8+
"Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUA\n" \
9+
"A4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaMf/vo\n" \
10+
"27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7w\n" \
11+
"Cl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjw\n" \
12+
"TcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0Pfybl\n" \
13+
"qAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaH\n" \
14+
"szVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4Zor8\n" \
15+
"Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUspzBmk\n" \
16+
"MiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92\n" \
17+
"wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70p\n" \
18+
"aDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrN\n" \
19+
"VjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQID\n" \
20+
"AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E\n" \
21+
"FgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBAJ+qQibb\n" \
22+
"C5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe\n" \
23+
"QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuy\n" \
24+
"h6f88/qBVRRiClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM4\n" \
25+
"7HLwEXWdyzRSjeZ2axfG34arJ45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8J\n" \
26+
"ZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYciNuaCp+0KueIHoI17eko8cdLiA6Ef\n" \
27+
"MgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5meLMFrUKTX5hgUvYU/\n" \
28+
"Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJFfbdT\n" \
29+
"6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ\n" \
30+
"0E6yove+7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm\n" \
31+
"2tIMPNuzjsmhDYAPexZ3FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bb\n" \
32+
"bP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3gm3c\n" \
33+
"-----END CERTIFICATE-----\n" \
34+
/* GTS Root R2 */
35+
"-----BEGIN CERTIFICATE-----\n" \
36+
"MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQsw\n" \
37+
"CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU\n" \
38+
"MBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw\n" \
39+
"MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp\n" \
40+
"Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUA\n" \
41+
"A4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3LvCvpt\n" \
42+
"nfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY\n" \
43+
"6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAu\n" \
44+
"MC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7k\n" \
45+
"RXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWg\n" \
46+
"f9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1mKPV\n" \
47+
"+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K8Yzo\n" \
48+
"dDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW\n" \
49+
"Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKa\n" \
50+
"G73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCq\n" \
51+
"gc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwID\n" \
52+
"AQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E\n" \
53+
"FgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBAB/Kzt3H\n" \
54+
"vqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8\n" \
55+
"0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyC\n" \
56+
"B19m3H0Q/gxhswWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2u\n" \
57+
"NmSRXbBoGOqKYcl3qJfEycel/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMg\n" \
58+
"yALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVnjWQye+mew4K6Ki3pHrTgSAai/Gev\n" \
59+
"HyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y59PYjJbigapordwj6\n" \
60+
"xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M7YNR\n" \
61+
"TOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924Sg\n" \
62+
"JPFI/2R80L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV\n" \
63+
"7LXTWtiBmelDGDfrs7vRWGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl\n" \
64+
"6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjWHYbL\n" \
65+
"-----END CERTIFICATE-----\n" \
66+
/* GTS Root R3 */
67+
"-----BEGIN CERTIFICATE-----\n" \
68+
"MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYD\n" \
69+
"VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG\n" \
70+
"A1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw\n" \
71+
"WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz\n" \
72+
"IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNi\n" \
73+
"AAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout736G\n" \
74+
"jOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL2\n" \
75+
"4CejQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\n" \
76+
"BBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7\n" \
77+
"VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azTL818+FsuVbu/3ZL3pAzcMeGiAjEA/Jdm\n" \
78+
"ZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV11RZt+cRLInUue4X\n" \
79+
"-----END CERTIFICATE-----\n" \
80+
/* GTS Root R4 */
81+
"-----BEGIN CERTIFICATE-----\n" \
82+
"MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYD\n" \
83+
"VQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIG\n" \
84+
"A1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAw\n" \
85+
"WjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2Vz\n" \
86+
"IExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi\n" \
87+
"AATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzuhXyi\n" \
88+
"QHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvR\n" \
89+
"HYqjQjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW\n" \
90+
"BBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D\n" \
91+
"9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/Cr8deVl5c1RxYIigL9zC2L7F8AjEA8GE8\n" \
92+
"p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh4rsUecrNIdSUtUlD\n" \
93+
"-----END CERTIFICATE-----\n" \
94+
/* GlobalSign R4 */
95+
"-----BEGIN CERTIFICATE-----\n" \
96+
"MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYD\n" \
97+
"VQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2Jh\n" \
98+
"bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgw\n" \
99+
"MTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9iYWxTaWduIEVDQyBSb290IENBIC0g\n" \
100+
"UjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wWTAT\n" \
101+
"BgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkWymOx\n" \
102+
"uYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNV\n" \
103+
"HQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/\n" \
104+
"+wpu+74zyTyjhNUwCgYIKoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147\n" \
105+
"bmF0774BxL4YSFlhgjICICadVGNA3jdgUM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm\n" \
106+
"-----END CERTIFICATE-----\n";

‎libraries/OTAUpdate/src/OTAUpdate.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,49 @@ int OTAUpdate::download(const char* url, const char* file_path) {
8787
return ret;
8888
}
8989

90+
int OTAUpdate::startDownload(const char* url) {
91+
string res = "";
92+
int ret = -1;
93+
if ( url != nullptr && strlen(url) > 0) {
94+
modem.timeout(EXTENDED_MODEM_TIMEOUT);
95+
if(modem.write(string(PROMPT(_OTA_DOWNLOAD_START)), res, "%s%s\r\n", CMD_WRITE(_OTA_DOWNLOAD_START), url)) {
96+
ret = atoi(res.c_str());
97+
} else {
98+
ret = static_cast<int>(Error::Modem);
99+
}
100+
} else {
101+
ret = static_cast<int>(Error::Library);
102+
}
103+
modem.timeout(MODEM_TIMEOUT);
104+
return ret;
105+
}
106+
107+
int OTAUpdate::startDownload(const char* url, const char* file_path) {
108+
string res = "";
109+
int ret = -1;
110+
111+
if ( url != nullptr && strlen(url) > 0 && file_path != nullptr && strlen(file_path) >0) {
112+
modem.timeout(EXTENDED_MODEM_TIMEOUT);
113+
if(modem.write(string(PROMPT(_OTA_DOWNLOAD_START)), res, "%s%s,%s\r\n", CMD_WRITE(_OTA_DOWNLOAD_START), url, file_path)) {
114+
ret = atoi(res.c_str());
115+
} else {
116+
ret = static_cast<int>(Error::Modem);
117+
}
118+
} else {
119+
ret = static_cast<int>(Error::Library);
120+
}
121+
modem.timeout(MODEM_TIMEOUT);
122+
return ret;
123+
}
124+
125+
int OTAUpdate::downloadProgress() {
126+
string res = "";
127+
if (modem.write(string(PROMPT(_OTA_DOWNLOAD_PROGRESS)), res, "%s", CMD(_OTA_DOWNLOAD_PROGRESS))) {
128+
return atoi(res.c_str());
129+
}
130+
return static_cast<int>(Error::Modem);
131+
}
132+
90133
int OTAUpdate::verify() {
91134
string res = "";
92135
if (modem.write(string(PROMPT(_OTA_VERIFY)), res, "%s", CMD(_OTA_VERIFY))) {

‎libraries/OTAUpdate/src/OTAUpdate.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@ class OTAUpdate {
4242
int begin(const char* file_path);
4343
int download(const char* url);
4444
int download(const char* url, const char* file_path);
45+
46+
int startDownload(const char* url);
47+
int startDownload(const char* url, const char* file_path);
48+
49+
int downloadProgress();
50+
4551
int verify();
4652
int update();
4753
int update(const char* file_path);

‎libraries/Preferences/examples/TypesCheck/TypesCheck.ino

Lines changed: 400 additions & 0 deletions
Large diffs are not rendered by default.

‎libraries/Preferences/src/Preferences.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,9 @@ size_t Preferences::putBool(const char* key, const bool value) {
162162
size_t Preferences::putString(const char* key, const char* value) {
163163
string res = "";
164164
if (key != nullptr && strlen(key) > 0 && value != nullptr && strlen(value) > 0) {
165-
if (modem.write(string(PROMPT(_PREF_PUT)), res, "%s%s,%d,%s\r\n", CMD_WRITE(_PREF_PUT), key, PT_STR, value)) {
166-
return atoi(res.c_str());
165+
modem.write_nowait(string(PROMPT(_PREF_PUT)), res, "%s%s,%d,%d\r\n", CMD_WRITE(_PREF_PUT), key, PT_STR, strlen(value));
166+
if(modem.passthrough((uint8_t *)value, strlen(value))) {
167+
return strlen(value);
167168
}
168169
}
169170
return 0;
@@ -187,7 +188,7 @@ size_t Preferences::putBytes(const char* key, const void* value, size_t len) {
187188
PreferenceType Preferences::getType(const char* key) {
188189
string res = "";
189190
if (key != nullptr && strlen(key) > 0) {
190-
if (modem.write(string(PROMPT(_PREF_PUT)), res, "%s%s\r\n", CMD_WRITE(_PREF_PUT), key)) {
191+
if (modem.write(string(PROMPT(_PREF_TYPE)), res, "%s%s\r\n", CMD_WRITE(_PREF_TYPE), key)) {
191192
return static_cast<PreferenceType>(atoi(res.c_str()));
192193
}
193194
}
@@ -307,9 +308,11 @@ bool Preferences::getBool(const char* key, const bool defaultValue) {
307308
size_t Preferences::getString(const char* key, char* value, const size_t maxLen) {
308309
string res = "";
309310
if (key != nullptr && strlen(key) > 0 && value != nullptr) {
311+
modem.read_using_size();
310312
if (modem.write(string(PROMPT(_PREF_GET)), res, "%s%s,%d\r\n", CMD_WRITE(_PREF_GET), key, PT_STR)) {
311-
if (res.length() < maxLen) {
313+
if (res.length()+1 < maxLen) { // take into account \0 at the end
312314
strncpy(value, res.c_str(), res.length());
315+
value[res.length()] = '\0';
313316
return res.length();
314317
}
315318
}
@@ -320,6 +323,7 @@ size_t Preferences::getString(const char* key, char* value, const size_t maxLen)
320323
String Preferences::getString(const char* key, const String defaultValue) {
321324
string res = "";
322325
if (key != nullptr && strlen(key) > 0) {
326+
modem.read_using_size();
323327
if (modem.write(string(PROMPT(_PREF_GET)), res, "%s%s,%d,%s\r\n", CMD_WRITE(_PREF_GET), key, PT_STR, defaultValue.c_str())) {
324328
return String(res.c_str());
325329
}
@@ -346,6 +350,8 @@ size_t Preferences::getBytes(const char* key, void * buf, size_t maxLen) {
346350
if (modem.write(string(PROMPT(_PREF_GET)), res, "%s%s,%d\r\n", CMD_WRITE(_PREF_GET), key, PT_BLOB)) {
347351
if (res.size() >= len && len <= maxLen) {
348352
memcpy(buf, (uint8_t*)&res[0], len);
353+
354+
return len;
349355
}
350356
}
351357
}

‎libraries/WiFiS3/examples/ScanNetworks/ScanNetworks.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ void printEncryptionType(int thisType) {
9191
Serial.println("WPA2");
9292
break;
9393
case ENC_TYPE_WPA3:
94-
Serial.print("WPA3");
94+
Serial.println("WPA3");
9595
break;
9696
case ENC_TYPE_NONE:
9797
Serial.println("None");
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
/*
2+
Web ICMP Ping
3+
4+
This sketch pings a device based on the IP address or the hostname
5+
using the WiFi module. By default the attempt is performed 5 times, but can
6+
be changed to max. 255
7+
8+
It requires at least version 0.5.0 of USB Wifi bridge firmware and WiFiS3 library.
9+
10+
This example is written for a network using WPA encryption. For
11+
WEP or WPA, change the WiFi.begin() call accordingly.
12+
13+
created 14 February 2024
14+
by paulvha
15+
16+
*/
17+
18+
#include "WiFiS3.h"
19+
#include "arduino_secrets.h"
20+
21+
///////please enter your sensitive data in the Secret tab/arduino_secrets.h
22+
char ssid[] = SECRET_SSID; // your network SSID (name)
23+
char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP)
24+
int keyIndex = 0; // your network key index number (needed only for WEP)
25+
26+
int status = WL_IDLE_STATUS;
27+
28+
/* -------------------------------------------------------------------------- */
29+
void setup() {
30+
/* -------------------------------------------------------------------------- */
31+
//Initialize serial and wait for port to open:
32+
Serial.begin(115200);
33+
while (!Serial) {
34+
; // wait for serial port to connect. Needed for native USB port only
35+
}
36+
37+
// check for the WiFi module:
38+
if (WiFi.status() == WL_NO_MODULE) {
39+
Serial.println("Communication with WiFi module failed.");
40+
// don't continue
41+
while (true);
42+
}
43+
44+
// attempt to connect to WiFi network:
45+
while (status != WL_CONNECTED) {
46+
Serial.print("Attempting to connect to SSID: ");
47+
Serial.println(ssid);
48+
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
49+
status = WiFi.begin(ssid, pass);
50+
51+
// wait 10 seconds for connection:
52+
delay(10000);
53+
}
54+
55+
printWifiStatus();
56+
}
57+
58+
/* -------------------------------------------------------------------------- */
59+
void loop() {
60+
/* -------------------------------------------------------------------------- */
61+
62+
// Ping IP
63+
const IPAddress remote_ip(140,82,121,4);
64+
Serial.print("Trying to ping github.com on IP: ");
65+
Serial.println(remote_ip);
66+
67+
// using default ping count of 1
68+
int res = WiFi.ping(remote_ip);
69+
70+
if (res > 0) {
71+
Serial.print("Ping response time: ");
72+
Serial.print(res);
73+
Serial.println(" ms");
74+
}
75+
else {
76+
Serial.println("Timeout on IP!");
77+
Serial.println("Make sure your WiFi firmware version is at least 0.5.0");
78+
}
79+
80+
// Ping Host
81+
const char* remote_host = "www.google.com";
82+
Serial.print("Trying to ping host: ");
83+
Serial.println(remote_host);
84+
85+
// setting ttl to 128 and ping count to 10
86+
int res1 = WiFi.ping(remote_host, 128, 10);
87+
88+
if (res1 > 0) {
89+
Serial.print("Ping average response time: ");
90+
Serial.print(res1);
91+
Serial.println(" ms");
92+
}
93+
else {
94+
Serial.println("Timeout on host!");
95+
Serial.println("Make sure your WiFi firmware version is at least 0.5.0");
96+
}
97+
98+
Serial.println();
99+
delay(1000);
100+
}
101+
102+
/* -------------------------------------------------------------------------- */
103+
void printWifiStatus() {
104+
/* -------------------------------------------------------------------------- */
105+
// print the SSID of the network you're attached to:
106+
Serial.print("SSID: ");
107+
Serial.println(WiFi.SSID());
108+
109+
// print your board's IP address:
110+
IPAddress ip = WiFi.localIP();
111+
Serial.print("IP Address: ");
112+
Serial.println(ip);
113+
114+
// print the received signal strength:
115+
long rssi = WiFi.RSSI();
116+
Serial.print("signal strength (RSSI):");
117+
Serial.print(rssi);
118+
Serial.println(" dBm");
119+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define SECRET_SSID ""
2+
#define SECRET_PASS ""

‎libraries/WiFiS3/examples/WiFiTime/WiFiTime.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ void loop() {
7373
}
7474
else {
7575
Serial.println("Error during reading epoch time.");
76-
Serial.println("Make sure your WiFi firmware version is greater than 0.5.0");
76+
Serial.println("Make sure your WiFi firmware version is at least 0.5.0");
7777
}
7878

7979
Serial.println();

‎libraries/WiFiS3/src/Modem.cpp

Lines changed: 314 additions & 197 deletions
Large diffs are not rendered by default.

‎libraries/WiFiS3/src/Modem.h

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -108,25 +108,22 @@ class ModemClass {
108108
* to be read is considered for processing.
109109
*/
110110
void read_using_size() {
111-
read_by_size = true;
112-
}
113-
114-
/**
115-
* @brief Flag indicating whether the system has been initialized.
116-
*/
111+
// read_by_size = true; // deprecated
112+
}
113+
117114
bool beginned;
118115

119116
/* Calling this function with no argument will enable debug message to be printed
120117
on Serial
121-
use first parameter UART *u to redirect debug output to a different serial
118+
use first parameter UART *u to redirect debug output to a different serial
122119
123120
level from 0 defaul to 2 (maximum) */
124121

125122
void debug(Stream &u, uint8_t level = 0) {
126123
_serial_debug = &u;
127-
128-
if(level > 2) {
129-
level = 2;
124+
125+
if(level > 3) {
126+
level = 3;
130127
}
131128
_debug_level = level;
132129
}
@@ -151,14 +148,19 @@ class ModemClass {
151148
void timeout(size_t timeout_ms) {_timeout = timeout_ms;}
152149

153150
private:
154-
bool buf_read(const std::string &cmd, std::string &data_res);
151+
enum ParseResult {
152+
Ok,
153+
Error,
154+
ParseError,
155+
Timeout
156+
};
157+
158+
ParseResult buf_read(const std::string &cmd, std::string &data_res);
155159
bool delete_serial;
156160
UART * _serial;
157161
unsigned long _timeout;
158162
uint8_t tx_buff[MAX_BUFF_SIZE];
159163
bool trim_results;
160-
bool read_by_size;
161-
bool read_by_size_finished(std::string &rx);
162164
Stream * _serial_debug;
163165
uint8_t _debug_level = 0;
164166
};

‎libraries/WiFiS3/src/WiFi.cpp

Lines changed: 106 additions & 75 deletions
Large diffs are not rendered by default.

‎libraries/WiFiS3/src/WiFi.h

Lines changed: 43 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@
2222
#define WL_MAC_ADDR_LENGTH 6
2323

2424
class CAccessPoint {
25-
public:
26-
std::string ssid;
27-
std::string bssid;
28-
uint8_t uint_bssid[6];
29-
std::string rssi;
30-
std::string channel;
31-
std::string encryption_mode;
25+
public:
26+
std::string ssid;
27+
std::string bssid;
28+
uint8_t uint_bssid[6];
29+
std::string rssi;
30+
std::string channel;
31+
std::string encryption_mode;
3232
};
3333

3434

@@ -42,17 +42,17 @@ class CAccessPoint {
4242
* connection settings such as IP address, DNS, and other network configurations.
4343
*/
4444
class CWifi {
45-
private:
46-
void _config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1, IPAddress dns2);
47-
unsigned long _timeout;
48-
std::vector<CAccessPoint> access_points;
49-
std::string ssid;
50-
std::string apssid;
51-
45+
private:
46+
void _config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1, IPAddress dns2);
47+
unsigned long _timeout;
48+
std::vector<CAccessPoint> access_points;
49+
std::string ssid;
50+
std::string apssid;
51+
5252

53-
IPAddress ip_ap = DEFAULT_IP_AP_ADDRESS;
54-
IPAddress gw_ap = DEFAULT_GW_AP_ADDRESS;
55-
IPAddress nm_ap = DEFAULT_NM_AP_ADDRESS;
53+
IPAddress ip_ap = DEFAULT_IP_AP_ADDRESS;
54+
IPAddress gw_ap = DEFAULT_GW_AP_ADDRESS;
55+
IPAddress nm_ap = DEFAULT_NM_AP_ADDRESS;
5656

5757

5858

@@ -67,6 +67,14 @@ class CWifi {
6767
* @brief Get firmware version
6868
*/
6969
static const char* firmwareVersion();
70+
/*
71+
* Get firmware version U32
72+
*
73+
* Since version is made in a semver fashion, thus in an integer it will be represented as
74+
* byte 1 (MSB) | byte 2 | byte 3 | byte 4
75+
* 0 | MAJOR | MINOR | PATCH
76+
*/
77+
uint32_t firmwareVersionU32();
7078

7179
/**
7280
* @brief Start WiFi connection for OPEN networks.
@@ -75,9 +83,21 @@ class CWifi {
7583
*/
7684
int begin(const char* ssid);
7785

78-
/**
79-
* @brief start WiFi connection with passphrase the most secure
80-
* supported mode will be automatically selected.
86+
/*
87+
* PING
88+
*/
89+
int ping(IPAddress ip, uint8_t ttl = 128, uint8_t count = 1);
90+
int ping(const String &hostname, uint8_t ttl = 128, uint8_t count = 1);
91+
int ping(const char* host, uint8_t ttl = 128, uint8_t count = 1);
92+
93+
/*
94+
* Start WiFi connection for OPEN networks
95+
* param ssid: Pointer to the SSID string.
96+
*/
97+
int begin(const char* ssid);
98+
99+
/* Start WiFi connection with passphrase
100+
* the most secure supported mode will be automatically selected
81101
*
82102
* @param `ssid` Pointer to the SSID string.
83103
* @param `passphrase` Passphrase. Valid characters in a passphrase
@@ -178,7 +198,7 @@ class CWifi {
178198
* @param `subnet` The static subnet mask to use for the network.
179199
*/
180200
void config(IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet);
181-
201+
182202
/**
183203
* @brief Sets the primary DNS server for the Wi-Fi connection.
184204
*
@@ -213,7 +233,6 @@ class CWifi {
213233
*/
214234
void end(void);
215235

216-
217236
/**
218237
* @brief Retrieves the MAC address of the device.
219238
*
@@ -224,7 +243,7 @@ class CWifi {
224243
*
225244
* @param `_mac` A pointer to a uint8_t array where the MAC address will be stored.
226245
*
227-
* @return uint8_t* The pointer to the array containing the MAC address.
246+
* @return uint8_t* The pointer to the array with length WL_MAC_ADDR_LENGTH.
228247
*/
229248
uint8_t* macAddress(uint8_t* mac);
230249

@@ -269,7 +288,6 @@ class CWifi {
269288
*/
270289
IPAddress dnsIP(int n = 0);
271290

272-
273291
/**
274292
* @brief Retrieves the IP address of the soft access point (AP).
275293
*
@@ -423,7 +441,7 @@ class CWifi {
423441
*/
424442
void setTimeout(unsigned long timeout);
425443

426-
444+
427445
};
428446

429447
/**

‎libraries/WiFiS3/src/WiFiClient.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ int WiFiClient::_read() {
128128

129129
if(modem.write(string(PROMPT(_CLIENTRECEIVE)),res, "%s%d,%d\r\n" , CMD_WRITE(_CLIENTRECEIVE), _sock, size)) {
130130
if(res.size() > 0) {
131-
for(int i = 0, rv = 0; i < size && i < res.size(); i++) {
131+
for(uint32_t i = 0, rv = 0; i < size && i < res.size(); i++) {
132132
rx_buffer->store((uint8_t)res[i]);
133133
rv++;
134134
}
@@ -168,7 +168,7 @@ int WiFiClient::read(uint8_t *buf, size_t size) {
168168
int rv = 0;
169169
bool go_on = true;
170170
if(_sock >= 0 && rx_buffer != nullptr) {
171-
for(int i = 0; i < size && go_on; i++) {
171+
for(size_t i = 0; i < size && go_on; i++) {
172172
bool is_read = false;
173173
*(buf+i) = rx_buffer->read(&is_read);
174174
if(is_read) {

‎libraries/WiFiS3/src/WiFiClient.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,14 +248,13 @@ class WiFiClient : public Client {
248248

249249
protected:
250250
int _sock;
251+
bool destroy_at_distructor;
251252
int _connectionTimeout = 0;
252253
void getSocket();
253254
static constexpr uint32_t RX_BUFFER_DIM = 1024;
254255
std::shared_ptr<FifoBuffer<uint8_t,RX_BUFFER_DIM>> rx_buffer;
255256
int _read();
256257
void read_if_needed(size_t s);
257-
bool destroy_at_distructor;
258-
259258

260259
};
261260

‎libraries/WiFiS3/src/WiFiFileSystem.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ size_t WiFiFileSystem::writefile(const char* name, const char* data, size_t size
2020
if(modem.passthrough((uint8_t *)data, size)) {
2121
return size;
2222
}
23+
return 0;
2324
}
2425

2526
/* -------------------------------------------------------------------------- */

‎libraries/WiFiS3/src/WiFiSSLClient.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ int WiFiSSLClient::_read() {
148148
modem.read_using_size();
149149
if(modem.write(string(PROMPT(_SSLCLIENTRECEIVE)),res, "%s%d,%d\r\n" , CMD_WRITE(_SSLCLIENTRECEIVE), _sock, size)) {
150150
if(res.size() > 0) {
151-
for(int i = 0, rv = 0; i < size && i < res.size(); i++) {
151+
for(uint32_t i = 0, rv = 0; i < size && i < res.size(); i++) {
152152
rx_buffer->store((uint8_t)res[i]);
153153
rv++;
154154
}
@@ -185,7 +185,7 @@ int WiFiSSLClient::read(uint8_t *buf, size_t size) {
185185
read_if_needed(size);
186186
int rv = 0;
187187
bool go_on = true;
188-
for(int i = 0; i < size && go_on; i++) {
188+
for(size_t i = 0; i < size && go_on; i++) {
189189
bool is_read = false;
190190
*(buf+i) = rx_buffer->read(&is_read);
191191
if(is_read) {

‎libraries/WiFiS3/src/WiFiTypes.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,11 @@ enum wl_enc_type {
3131
ENC_TYPE_UNKNOWN = 255
3232
};
3333

34+
typedef enum {
35+
WL_PING_DEST_UNREACHABLE = -1,
36+
WL_PING_TIMEOUT = -2,
37+
WL_PING_UNKNOWN_HOST = -3,
38+
WL_PING_ERROR = -4
39+
} wl_ping_result_t;
40+
3441
#endif

‎libraries/WiFiS3/src/WiFiUdp.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ int WiFiUDP::_read() {
181181
modem.read_using_size();
182182
if(modem.write(string(PROMPT(_UDPREAD)),res, "%s%d,%d\r\n" , CMD_WRITE(_UDPREAD), _sock, size)) {
183183
if(res.size() > 0) {
184-
for(int i = 0, rv = 0; i < size && i < res.size(); i++) {
184+
for(uint32_t i = 0, rv = 0; i < size && i < res.size(); i++) {
185185
rx_buffer.store((uint8_t)res[i]);
186186
rv++;
187187
}
@@ -218,7 +218,7 @@ int WiFiUDP::read(unsigned char* buf, size_t size) {
218218
read_if_needed(size);
219219
int rv = 0;
220220
bool go_on = true;
221-
for(int i = 0; i < size && go_on; i++) {
221+
for(size_t i = 0; i < size && go_on; i++) {
222222
bool is_read = false;
223223
*(buf+i) = rx_buffer.read(&is_read);
224224
if(is_read) {

‎platform.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5---3rd-party-Hardware-specification
44

55
name=Arduino Renesas fsp Boards
6-
version=1.2.2
6+
version=1.3.2
77

88
# Compile variables
99
# ------------------------

0 commit comments

Comments
 (0)
Please sign in to comment.