@@ -132,7 +132,6 @@ void setup() {
132
132
#endif
133
133
/* Set up wifi event */
134
134
WiFi.onEvent (CAtHandler::onWiFiEvent);
135
-
136
135
137
136
xTaskCreatePinnedToCore (
138
137
atLoop, /* Function to implement the task */
@@ -148,38 +147,39 @@ void setup() {
148
147
arduino-builder -compile -fqbn=espressif:esp32:esp32s3:JTAGAdapter=default,PSRAM=disabled,FlashMode=qio,FlashSize=4M,LoopCore=1,EventsCore=1,USBMode=default,CDCOnBoot=cdc,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PartitionScheme=huge_app,CPUFreq=240,UploadSpeed=921600,DebugLevel=none,EraseFlash=none -vid-pid=303A_1001 -ide-version=10820 CompostaUSBBridge.ino
149
148
*/
150
149
150
+ static uint8_t buf[2048 ];
151
+
151
152
/* -------------------------------------------------------------------------- */
152
153
void loop () {
153
154
/* -------------------------------------------------------------------------- */
154
155
155
- if (SERIAL_USER && SERIAL_USER .baudRate () != _baud) {
156
+ if (SERIAL_USER.baudRate () != _baud) {
156
157
_baud = SERIAL_USER.baudRate ();
157
158
}
158
159
159
- uint8_t buf[2048 ];
160
160
int i = 0 ;
161
- while (SERIAL_USER && SERIAL_USER.available () && i < sizeof (buf)) {
162
- buf[i++] = SERIAL_USER.read ();
161
+
162
+ if (SERIAL_USER.available ()) {
163
+ i = min ((unsigned int )SERIAL_USER.available (), sizeof (buf));
164
+ SERIAL_USER.readBytes (buf, i);
163
165
}
166
+
164
167
if (i > 0 ) {
165
168
SERIAL_USER_INTERNAL.write (buf, i);
166
169
}
170
+
167
171
i = 0 ;
168
- while (SERIAL_USER_INTERNAL.available () && i < sizeof (buf)) {
169
- buf[i++] = SERIAL_USER_INTERNAL.read ();
172
+ if (SERIAL_USER_INTERNAL.available ()) {
173
+ i = min ((unsigned int )SERIAL_USER_INTERNAL.available (), sizeof (buf));
174
+ SERIAL_USER_INTERNAL.readBytes (buf, i);
170
175
}
171
- if (i > 0 && SERIAL_USER ) {
176
+ if (i > 0 ) {
172
177
SERIAL_USER.write (buf, i);
173
178
}
174
179
175
180
yield ();
176
181
}
177
182
178
-
179
-
180
-
181
-
182
-
183
183
void usbEventCallback (void * arg, esp_event_base_t event_base, int32_t event_id, void * event_data) {
184
184
if (event_base == ARDUINO_USB_CDC_EVENTS) {
185
185
arduino_usb_cdc_event_data_t * data = (arduino_usb_cdc_event_data_t *)event_data;
0 commit comments