Skip to content

Commit 2c5ed33

Browse files
committed
Partially revert prev change
- Fix one thing, break another... need to separate incoming and outgoing data counters
1 parent 1fd70e2 commit 2c5ed33

File tree

2 files changed

+21
-20
lines changed

2 files changed

+21
-20
lines changed

RF24Client.cpp

+19-19
Original file line numberDiff line numberDiff line change
@@ -196,16 +196,16 @@ size_t RF24Client::_write(uip_userdata_t* u, const uint8_t* buf, size_t size)
196196
if (u && !(u->state & (UIP_CLIENT_CLOSE | UIP_CLIENT_REMOTECLOSED)) && u->state & (UIP_CLIENT_CONNECTED))
197197
{
198198

199-
if (u->data_pos + payloadSize > UIP_TCP_MSS || u->hold)
199+
if (u->out_pos + payloadSize > UIP_TCP_MSS || u->hold)
200200
{
201201
goto test2;
202202
}
203203

204-
IF_RF24ETHERNET_DEBUG_CLIENT(Serial.println(); Serial.print(millis()); Serial.print(F(" UIPClient.write: writePacket(")); Serial.print(u->packets_out); Serial.print(F(") pos: ")); Serial.print(u->data_pos); Serial.print(F(", buf[")); Serial.print(size - total_written); Serial.print(F("]: '")); Serial.write((uint8_t*)buf + total_written, payloadSize); Serial.println(F("'")););
204+
IF_RF24ETHERNET_DEBUG_CLIENT(Serial.println(); Serial.print(millis()); Serial.print(F(" UIPClient.write: writePacket(")); Serial.print(u->packets_out); Serial.print(F(") pos: ")); Serial.print(u->out_pos); Serial.print(F(", buf[")); Serial.print(size - total_written); Serial.print(F("]: '")); Serial.write((uint8_t*)buf + total_written, payloadSize); Serial.println(F("'")););
205205

206-
memcpy(u->myData + u->data_pos, buf + total_written, payloadSize);
206+
memcpy(u->myData + u->out_pos, buf + total_written, payloadSize);
207207
u->packets_out = 1;
208-
u->data_pos += payloadSize;
208+
u->out_pos += payloadSize;
209209

210210
total_written += payloadSize;
211211

@@ -218,7 +218,7 @@ size_t RF24Client::_write(uip_userdata_t* u, const uint8_t* buf, size_t size)
218218
goto test2;
219219
}
220220
u->hold = false;
221-
return u->data_pos;
221+
return u->out_pos;
222222
}
223223
u->hold = false;
224224
return -1;
@@ -279,15 +279,15 @@ void serialip_appcall(void)
279279
#if UIP_CONNECTION_TIMEOUT > 0
280280
u->connectTimer = millis();
281281
#endif
282-
u->hold = (u->data_pos = (u->windowOpened = (u->packets_out = false)));
282+
u->hold = (u->out_pos = (u->windowOpened = (u->packets_out = false)));
283283

284284
if (uip_len && !(u->state & (UIP_CLIENT_CLOSE | UIP_CLIENT_REMOTECLOSED)))
285285
{
286286
uip_stop();
287287
u->state &= ~UIP_CLIENT_RESTART;
288288
u->windowOpened = false;
289289
u->restartTime = millis();
290-
memcpy(&u->myData[u->data_pos + u->dataCnt], uip_appdata, uip_datalen());
290+
memcpy(&u->myData[u->in_pos + u->dataCnt], uip_appdata, uip_datalen());
291291
u->dataCnt += uip_datalen();
292292

293293
u->packets_in = 1;
@@ -325,7 +325,7 @@ void serialip_appcall(void)
325325
{
326326
IF_RF24ETHERNET_DEBUG_CLIENT(Serial.println(); Serial.print(millis()); Serial.println(F(" UIPClient uip_acked")););
327327
u->state &= ~UIP_CLIENT_RESTART;
328-
u->hold = (u->data_pos = (u->windowOpened = (u->packets_out = false)));
328+
u->hold = (u->out_pos = (u->windowOpened = (u->packets_out = false)));
329329
u->restartTime = millis();
330330
#if UIP_CONNECTION_TIMEOUT > 0
331331
u->connectTimer = millis();
@@ -337,18 +337,18 @@ void serialip_appcall(void)
337337
{
338338
if (uip_rexmit()) {
339339
IF_RF24ETHERNET_DEBUG_CLIENT(Serial.print(F("ReXmit, Len: ")););
340-
IF_RF24ETHERNET_DEBUG_CLIENT(Serial.println(u->data_pos));
341-
uip_len = u->data_pos;
342-
uip_send(u->myData, u->data_pos);
340+
IF_RF24ETHERNET_DEBUG_CLIENT(Serial.println(u->out_pos));
341+
uip_len = u->out_pos;
342+
uip_send(u->myData, u->out_pos);
343343
u->hold = true;
344344
goto finish;
345345
}
346346
// IF_RF24ETHERNET_DEBUG_CLIENT( Serial.println(); Serial.println(F("UIPClient uip_poll")); );
347347

348348
if (u->packets_out != 0 && !u->hold)
349349
{
350-
uip_len = u->data_pos;
351-
uip_send(u->myData, u->data_pos);
350+
uip_len = u->out_pos;
351+
uip_send(u->myData, u->out_pos);
352352
u->hold = true;
353353
goto finish;
354354
}
@@ -428,8 +428,8 @@ uip_userdata_t* RF24Client::_allocateData()
428428
data->packets_in = 0;
429429
data->packets_out = 0;
430430
data->dataCnt = 0;
431-
//data->dataPos = 0;
432-
data->data_pos = 0;
431+
data->in_pos = 0;
432+
data->out_pos = 0;
433433
data->hold = 0;
434434
data->restartTime = millis();
435435
data->restartInterval = 5000;
@@ -490,15 +490,15 @@ int RF24Client::read(uint8_t* buf, size_t size)
490490
}
491491

492492
size = rf24_min(data->dataCnt, size);
493-
memcpy(buf, &data->myData[data->data_pos], size);
493+
memcpy(buf, &data->myData[data->in_pos], size);
494494
data->dataCnt -= size;
495495

496-
data->data_pos += size;
496+
data->in_pos += size;
497497

498498
if (!data->dataCnt)
499499
{
500500
data->packets_in = 0;
501-
data->data_pos = 0;
501+
data->in_pos = 0;
502502

503503
if (uip_stopped(&uip_conns[data->state & UIP_CLIENT_SOCKETS]) && !(data->state & (UIP_CLIENT_CLOSE | UIP_CLIENT_REMOTECLOSED)))
504504
{
@@ -543,7 +543,7 @@ int RF24Client::peek()
543543
{
544544
if (available())
545545
{
546-
return data->myData[data->data_pos];
546+
return data->myData[data->in_pos];
547547
}
548548
return -1;
549549
}

RF24Client.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ typedef struct __attribute__((__packed__))
5757
bool packets_out;
5858
bool windowOpened;
5959
uint8_t state;
60-
uint16_t data_pos;
60+
uint16_t in_pos;
61+
uint16_t out_pos;
6162
uint16_t dataCnt;
6263
#if UIP_CLIENT_TIMER >= 0
6364
uint32_t timer;

0 commit comments

Comments
 (0)