mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-06-01 02:55:07 +08:00
Changed Serial readAtLeast timeout from microseconds to milliseconds
This commit is contained in:
committed by
Daniel Agar
parent
e33ba810e9
commit
c334e488e4
@@ -74,9 +74,9 @@ ssize_t Serial::read(uint8_t *buffer, size_t buffer_size)
|
|||||||
return _impl.read(buffer, buffer_size);
|
return _impl.read(buffer, buffer_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t Serial::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count, uint32_t timeout_us)
|
ssize_t Serial::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count, uint32_t timeout_ms)
|
||||||
{
|
{
|
||||||
return _impl.readAtLeast(buffer, buffer_size, character_count, timeout_us);
|
return _impl.readAtLeast(buffer, buffer_size, character_count, timeout_ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t Serial::write(const void *buffer, size_t buffer_size)
|
ssize_t Serial::write(const void *buffer, size_t buffer_size)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public:
|
|||||||
bool close();
|
bool close();
|
||||||
|
|
||||||
ssize_t read(uint8_t *buffer, size_t buffer_size);
|
ssize_t read(uint8_t *buffer, size_t buffer_size);
|
||||||
ssize_t readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count = 1, uint32_t timeout_us = 0);
|
ssize_t readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count = 1, uint32_t timeout_ms = 0);
|
||||||
|
|
||||||
ssize_t write(const void *buffer, size_t buffer_size);
|
ssize_t write(const void *buffer, size_t buffer_size);
|
||||||
|
|
||||||
|
|||||||
@@ -251,7 +251,7 @@ ssize_t SerialImpl::read(uint8_t *buffer, size_t buffer_size)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count, uint32_t timeout_us)
|
ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count, uint32_t timeout_ms)
|
||||||
{
|
{
|
||||||
if (!_open) {
|
if (!_open) {
|
||||||
PX4_ERR("Cannot readAtLeast from serial device until it has been opened");
|
PX4_ERR("Cannot readAtLeast from serial device until it has been opened");
|
||||||
@@ -264,6 +264,7 @@ ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t char
|
|||||||
}
|
}
|
||||||
|
|
||||||
const hrt_abstime start_time_us = hrt_absolute_time();
|
const hrt_abstime start_time_us = hrt_absolute_time();
|
||||||
|
hrt_abstime timeout_us = timeout_ms * 1000;
|
||||||
int total_bytes_read = 0;
|
int total_bytes_read = 0;
|
||||||
|
|
||||||
while ((total_bytes_read < (int) character_count) && (hrt_elapsed_time(&start_time_us) < timeout_us)) {
|
while ((total_bytes_read < (int) character_count) && (hrt_elapsed_time(&start_time_us) < timeout_us)) {
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ ssize_t SerialImpl::read(uint8_t *buffer, size_t buffer_size)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count, uint32_t timeout_us)
|
ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count, uint32_t timeout_ms)
|
||||||
{
|
{
|
||||||
if (!_open) {
|
if (!_open) {
|
||||||
PX4_ERR("Cannot readAtLeast from serial device until it has been opened");
|
PX4_ERR("Cannot readAtLeast from serial device until it has been opened");
|
||||||
@@ -257,6 +257,7 @@ ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t char
|
|||||||
}
|
}
|
||||||
|
|
||||||
const hrt_abstime start_time_us = hrt_absolute_time();
|
const hrt_abstime start_time_us = hrt_absolute_time();
|
||||||
|
hrt_abstime timeout_us = timeout_ms * 1000;
|
||||||
int total_bytes_read = 0;
|
int total_bytes_read = 0;
|
||||||
|
|
||||||
while ((total_bytes_read < (int) character_count) && (hrt_elapsed_time(&start_time_us) < timeout_us)) {
|
while ((total_bytes_read < (int) character_count) && (hrt_elapsed_time(&start_time_us) < timeout_us)) {
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ ssize_t SerialImpl::read(uint8_t *buffer, size_t buffer_size)
|
|||||||
return ret_read;
|
return ret_read;
|
||||||
}
|
}
|
||||||
|
|
||||||
ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count, uint32_t timeout_us)
|
ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t character_count, uint32_t timeout_ms)
|
||||||
{
|
{
|
||||||
if (!_open) {
|
if (!_open) {
|
||||||
PX4_ERR("Cannot readAtLeast from serial device until it has been opened");
|
PX4_ERR("Cannot readAtLeast from serial device until it has been opened");
|
||||||
@@ -186,6 +186,7 @@ ssize_t SerialImpl::readAtLeast(uint8_t *buffer, size_t buffer_size, size_t char
|
|||||||
}
|
}
|
||||||
|
|
||||||
const hrt_abstime start_time_us = hrt_absolute_time();
|
const hrt_abstime start_time_us = hrt_absolute_time();
|
||||||
|
hrt_abstime timeout_us = timeout_ms * 1000;
|
||||||
int total_bytes_read = 0;
|
int total_bytes_read = 0;
|
||||||
|
|
||||||
while (total_bytes_read < (int) character_count) {
|
while (total_bytes_read < (int) character_count) {
|
||||||
|
|||||||
Reference in New Issue
Block a user