Changed Serial readAtLeast timeout from microseconds to milliseconds

This commit is contained in:
Eric Katzfey
2024-06-18 18:48:56 -04:00
committed by Daniel Agar
parent e33ba810e9
commit c334e488e4
5 changed files with 9 additions and 6 deletions
+2 -2
View File
@@ -74,9 +74,9 @@ ssize_t Serial::read(uint8_t *buffer, size_t 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)
@@ -62,7 +62,7 @@ public:
bool close();
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);
@@ -251,7 +251,7 @@ ssize_t SerialImpl::read(uint8_t *buffer, size_t buffer_size)
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) {
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();
hrt_abstime timeout_us = timeout_ms * 1000;
int total_bytes_read = 0;
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;
}
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) {
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();
hrt_abstime timeout_us = timeout_ms * 1000;
int total_bytes_read = 0;
while ((total_bytes_read < (int) character_count) && (hrt_elapsed_time(&start_time_us) < timeout_us)) {
+2 -1
View File
@@ -173,7 +173,7 @@ ssize_t SerialImpl::read(uint8_t *buffer, size_t buffer_size)
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) {
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();
hrt_abstime timeout_us = timeout_ms * 1000;
int total_bytes_read = 0;
while (total_bytes_read < (int) character_count) {