kopia lustrzana https://github.com/Hamlib/Hamlib
Move semicolon removal after complete string is read.
xg3 was expecting single ; response and old way was causing timeoutspull/1245/head
rodzic
a8aba7c13b
commit
edc18103f0
26
src/iofunc.c
26
src/iofunc.c
|
@ -1358,6 +1358,7 @@ static int read_string_generic(hamlib_port_t *p,
|
||||||
direct);
|
direct);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (++i < 10 && errno == EBUSY); // 50ms should be enough
|
while (++i < 10 && errno == EBUSY); // 50ms should be enough
|
||||||
|
|
||||||
/* if we get 0 bytes or an error something is wrong */
|
/* if we get 0 bytes or an error something is wrong */
|
||||||
|
@ -1376,16 +1377,15 @@ static int read_string_generic(hamlib_port_t *p,
|
||||||
|
|
||||||
// check to see if our string startis with \...if so we need more chars
|
// check to see if our string startis with \...if so we need more chars
|
||||||
if (total_count == 0 && rxbuffer[total_count] == '\\') { rxmax = (rxmax - 1) * 5; }
|
if (total_count == 0 && rxbuffer[total_count] == '\\') { rxmax = (rxmax - 1) * 5; }
|
||||||
|
|
||||||
if (total_count == 0 && rxbuffer[0] == ';')
|
|
||||||
{
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: skipping single ';' char\n", __func__);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
total_count += (int) rd_count;
|
total_count += (int) rd_count;
|
||||||
|
|
||||||
|
if (rxbuffer[0] == ';' && total_count > 1)
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (total_count == rxmax) break;
|
if (total_count == rxmax) { break; }
|
||||||
|
|
||||||
if (stopset && memchr(stopset, rxbuffer[total_count - 1], stopset_len))
|
if (stopset && memchr(stopset, rxbuffer[total_count - 1], stopset_len))
|
||||||
{
|
{
|
||||||
|
@ -1401,6 +1401,18 @@ static int read_string_generic(hamlib_port_t *p,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (total_count > 1 && rxbuffer[0] == ';')
|
||||||
|
{
|
||||||
|
while (rxbuffer[0] == ';' && rxbuffer[0] != 0 && total_count > 1)
|
||||||
|
{
|
||||||
|
memmove(rxbuffer, &rxbuffer[1], strlen((char *)rxbuffer) - 1);
|
||||||
|
--total_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
rig_debug(RIG_DEBUG_VERBOSE,
|
||||||
|
"%s: skipping single ';' chars at beginning of reply\n", __func__);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Doesn't hurt anyway. But be aware, some binary protocols may have
|
* Doesn't hurt anyway. But be aware, some binary protocols may have
|
||||||
* null chars within the received buffer.
|
* null chars within the received buffer.
|
||||||
|
|
Ładowanie…
Reference in New Issue