serial namespace
Classes
- class ControlFrameStreamDecoder
- Incremental serial-frame decoder with inter-byte timeout handling.
- struct ControlFrameView
- Borrowed decoded view of one serial control frame.
- struct ControlFrameViewDecodeResult
- Incremental decode result for one encoded frame stream.
- class ControlService
- Serial transport adapter around the transport-neutral control exchange.
- class ControlServiceTaskRunner
- Task runner that keeps one serial control transport active.
- class IStreamIo
- Abstract byte-stream backend used by the serial control transport.
Enums
- enum class ControlFrameKind: uint8_t { Request = 1u, Response = 2u }
- Serial control frame kind.
- enum class ControlResponseCode: uint8_t { Ok = 0u, Changed = 1u, InvalidRequest = 2u, Unauthorized = 3u, NotFound = 4u, ServiceUnavailable = 5u, Busy = 6u }
- Logical response status mapped from
ExchangeService. - enum class ControlTransportStatus: uint8_t { Ok = 0u, InvalidFrame = 1u, BadCrc = 2u, BadLength = 3u, UnsupportedVersion = 4u, UnsupportedKind = 5u, InternalError = 6u }
- Transport-layer serial framing status.
Functions
- auto decode_control_frame_view(const std::span<const uint8_t> encoded_frame, const std::span<uint8_t> raw_scratch, ControlFrameViewDecodeResult*const out_result) -> bool
- Decodes one complete encoded frame into a borrowed logical view.
- auto encode_control_frame_into(const ControlFrameView& frame, const std::span<uint8_t> raw_scratch, const std::span<uint8_t> encoded_buffer, std::span<const uint8_t>*const out_encoded) -> bool
- Encodes one logical frame into serial wire format.
- auto encoded_control_frame_upper_bound(const size_t payload_size) -> size_t
- Returns worst-case encoded size for one payload length.
Variables
- uint16_t kContentFormatAbsent constexpr
- Sentinel content-format value meaning that outer transport format is absent.
- uint8_t kControlProtocolVersion constexpr
- Wire protocol version for PacketRF serial control transport.
- size_t kDefaultMaxEncodedControlFrameBytes constexpr
- Worst-case encoded frame bytes including framing escapes and delimiters.
- size_t kDefaultMaxRawControlFrameBytes constexpr
- Worst-case decoded frame bytes including metadata and CRC.
Enum documentation
enum class prf:: serial:: ControlFrameKind: uint8_t
#include <serial/control_protocol.hpp>
Serial control frame kind.
enum class prf:: serial:: ControlResponseCode: uint8_t
#include <serial/control_protocol.hpp>
Logical response status mapped from ExchangeService.
enum class prf:: serial:: ControlTransportStatus: uint8_t
#include <serial/control_protocol.hpp>
Transport-layer serial framing status.
Function documentation
bool prf:: serial:: decode_control_frame_view(const std::span<const uint8_t> encoded_frame,
const std::span<uint8_t> raw_scratch,
ControlFrameViewDecodeResult*const out_result)
#include <serial/control_protocol.hpp>
Decodes one complete encoded frame into a borrowed logical view.
bool prf:: serial:: encode_control_frame_into(const ControlFrameView& frame,
const std::span<uint8_t> raw_scratch,
const std::span<uint8_t> encoded_buffer,
std::span<const uint8_t>*const out_encoded)
#include <serial/control_protocol.hpp>
Encodes one logical frame into serial wire format.
size_t prf:: serial:: encoded_control_frame_upper_bound(const size_t payload_size)
#include <serial/control_protocol.hpp>
Returns worst-case encoded size for one payload length.
Variable documentation
uint16_t prf:: serial:: kContentFormatAbsent constexpr
#include <serial/control_protocol.hpp>
Sentinel content-format value meaning that outer transport format is absent.
uint8_t prf:: serial:: kControlProtocolVersion constexpr
#include <serial/control_protocol.hpp>
Wire protocol version for PacketRF serial control transport.
size_t prf:: serial:: kDefaultMaxEncodedControlFrameBytes constexpr
#include <serial/control_protocol.hpp>
Worst-case encoded frame bytes including framing escapes and delimiters.
size_t prf:: serial:: kDefaultMaxRawControlFrameBytes constexpr
#include <serial/control_protocol.hpp>
Worst-case decoded frame bytes including metadata and CRC.