@@ -212,7 +212,7 @@ where
212
212
213
213
fn send_data ( & mut self , data : & str , socket : Socket ) -> Result < [ u8 ; 1 ] , Error > {
214
214
let operation = Operation :: new ( NinaCommand :: SendDataTcp )
215
- . param ( NinaLargeArrayParam :: from_bytes ( & [ socket] ) ?)
215
+ . param ( NinaByteParam :: from_bytes ( & [ socket] ) ?)
216
216
. param ( NinaLargeArrayParam :: new ( data) ?) ;
217
217
218
218
self . execute ( & operation) ?;
@@ -223,8 +223,8 @@ where
223
223
}
224
224
225
225
fn avail_data_tcp ( & mut self , socket : Socket ) -> Result < usize , Error > {
226
- let operation = Operation :: new ( NinaCommand :: AvailDataTcp )
227
- . param ( NinaLargeArrayParam :: from_bytes ( & [ socket] ) ?) ;
226
+ let operation =
227
+ Operation :: new ( NinaCommand :: AvailDataTcp ) . param ( NinaByteParam :: from_bytes ( & [ socket] ) ?) ;
228
228
229
229
self . execute ( & operation) ?;
230
230
@@ -246,8 +246,16 @@ where
246
246
}
247
247
248
248
fn receive_data ( & mut self , socket : Socket ) -> Result < NinaResponseBuffer , Error > {
249
- self . avail_data_tcp ( socket) ;
250
- let mut response_param_buffer: NinaResponseBuffer = [ 0 ; MAX_NINA_RESPONSE_LENGTH ] ;
249
+ let mut avail_data: usize = 0 ;
250
+ loop {
251
+ avail_data = self . avail_data_tcp ( socket) ?;
252
+ if avail_data > 0 {
253
+ break ;
254
+ }
255
+ }
256
+
257
+ defmt:: debug!( "available data: {:?}" , avail_data) ;
258
+ let response_param_buffer: NinaResponseBuffer = [ 0 ; MAX_NINA_RESPONSE_LENGTH ] ;
251
259
252
260
Ok ( response_param_buffer)
253
261
}
0 commit comments