[SerialImpl]: add function to return pollfd

This commit is contained in:
Alexander Lerach
2025-12-09 18:42:46 +01:00
parent 73a8fc8fb0
commit f0d40d7a43
6 changed files with 29 additions and 0 deletions
+5
View File
@@ -69,6 +69,11 @@ bool Serial::close()
return _impl.close();
}
bool Serial::getPollFd(const px4_pollevent_t events, px4_pollfd_struct_t *pfd)
{
return _impl.getPollFd(events, pfd);
}
ssize_t Serial::bytesAvailable()
{
return _impl.bytesAvailable();
@@ -35,6 +35,7 @@
#include <SerialImpl.hpp>
#include <px4_platform_common/posix.h>
#include <px4_platform_common/SerialCommon.hpp>
using device::SerialConfig::ByteSize;
@@ -61,6 +62,8 @@ public:
bool close();
bool getPollFd(const px4_pollevent_t events, px4_pollfd_struct_t *pfd);
ssize_t bytesAvailable();
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_ms = 0);
@@ -289,6 +289,18 @@ bool SerialImpl::close()
return true;
}
bool SerialImpl::getPollFd(const px4_pollevent_t events, px4_pollfd_struct_t *pfd)
{
if (!_open) {
PX4_ERR("Device not open!");
return false;
}
pfd->fd = _serial_fd;
pfd->events = events;
return true;
}
ssize_t SerialImpl::bytesAvailable()
{
if (!_open) {
@@ -36,6 +36,7 @@
#include <stdint.h>
#include <unistd.h>
#include <px4_platform_common/posix.h>
#include <px4_platform_common/SerialCommon.hpp>
using device::SerialConfig::ByteSize;
@@ -59,6 +60,8 @@ public:
bool close();
bool getPollFd(const px4_pollevent_t events, px4_pollfd_struct_t *pfd);
ssize_t bytesAvailable();
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);
+3
View File
@@ -36,6 +36,7 @@
#include <stdint.h>
#include <unistd.h>
#include <px4_platform_common/posix.h>
#include <px4_platform_common/SerialCommon.hpp>
using device::SerialConfig::ByteSize;
@@ -59,6 +60,8 @@ public:
bool close();
bool getPollFd(px4_pollevent_t event, px4_pollfd_struct_t *pfd);
ssize_t bytesAvailable();
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);
+3
View File
@@ -35,6 +35,7 @@
#include <unistd.h>
#include <px4_platform_common/posix.h>
#include <px4_platform_common/SerialCommon.hpp>
using device::SerialConfig::ByteSize;
@@ -58,6 +59,8 @@ public:
bool close();
bool getPollFd(const px4_pollevent_t events, px4_pollfd_struct_t *pfd);
ssize_t bytesAvailable();
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);