logging/nxscope: do not complete the stream frame if the previous send failed
In this case, the buffer already contains a frame ready to be send
This commit is contained in:
parent
8726e530d5
commit
5eebfbb441
@ -360,6 +360,7 @@ struct nxscope_s
|
||||
FAR uint8_t *streambuf;
|
||||
size_t streambuf_len;
|
||||
size_t stream_i;
|
||||
bool stream_retry;
|
||||
|
||||
#ifdef CONFIG_LOGGING_NXSCOPE_CRICHANNELS
|
||||
/* Critical buffer data */
|
||||
|
@ -61,12 +61,15 @@ int nxscope_stream_send(FAR struct nxscope_s *s, FAR uint8_t *buff,
|
||||
|
||||
/* Finalize stream frame */
|
||||
|
||||
ret = PROTO_FRAME_FINAL(s, s->proto_stream,
|
||||
NXSCOPE_HDRID_STREAM, buff, buff_i);
|
||||
if (ret < 0)
|
||||
if (!s->stream_retry)
|
||||
{
|
||||
_err("ERROR: PROTO_FRAME_FINAL failed %d\n", ret);
|
||||
goto errout;
|
||||
ret = PROTO_FRAME_FINAL(s, s->proto_stream,
|
||||
NXSCOPE_HDRID_STREAM, buff, buff_i);
|
||||
if (ret < 0)
|
||||
{
|
||||
_err("ERROR: PROTO_FRAME_FINAL failed %d\n", ret);
|
||||
goto errout;
|
||||
}
|
||||
}
|
||||
|
||||
/* Send stream data */
|
||||
@ -75,6 +78,11 @@ int nxscope_stream_send(FAR struct nxscope_s *s, FAR uint8_t *buff,
|
||||
if (ret < 0)
|
||||
{
|
||||
_err("ERROR: INTF_SEND failed %d\n", ret);
|
||||
s->stream_retry = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
s->stream_retry = false;
|
||||
}
|
||||
|
||||
errout:
|
||||
|
Loading…
Reference in New Issue
Block a user