MC Protocol Serial C++
0.2.3
MC protocol serial library for MCU-oriented environments
Loading...
Searching...
No Matches
status.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <cstdint>
4
5
namespace
mcprotocol::serial
{
6
8
enum class
StatusCode
:
std::uint8_t
{
9
Ok
= 0,
10
InvalidArgument
,
11
Busy
,
12
Timeout
,
13
Transport
,
14
Framing
,
15
SumCheckMismatch
,
16
Parse
,
17
UnsupportedConfiguration
,
18
PlcError
,
19
BufferTooSmall
,
20
Cancelled
21
};
22
26
struct
Status
{
27
StatusCode
code
=
StatusCode::Ok
;
28
std::uint16_t
plc_error_code
= 0;
29
const
char
*
message
=
"ok"
;
30
31
[[nodiscard]]
constexpr
bool
ok
() const noexcept {
32
return
code
==
StatusCode::Ok
;
33
}
34
};
35
37
[[nodiscard]]
constexpr
inline
Status
ok_status
() noexcept {
38
return
{};
39
}
40
42
[[nodiscard]]
constexpr
inline
Status
make_status
(
43
StatusCode
code,
44
const
char
* message,
45
std::uint16_t
plc_error_code = 0) noexcept {
46
return
Status
{.
code
= code, .plc_error_code = plc_error_code, .message = message};
47
}
48
49
}
// namespace mcprotocol::serial
std::span
Definition
span_compat.hpp:42
mcprotocol::serial
Definition
client.hpp:23
mcprotocol::serial::make_status
constexpr Status make_status(StatusCode code, const char *message, std::uint16_t plc_error_code=0) noexcept
Builds a status value with an optional PLC end code.
Definition
status.hpp:42
mcprotocol::serial::ok_status
constexpr Status ok_status() noexcept
Returns the default success status.
Definition
status.hpp:37
mcprotocol::serial::StatusCode
StatusCode
Library-level status code returned by encode, decode, transport, and client operations.
Definition
status.hpp:8
mcprotocol::serial::StatusCode::UnsupportedConfiguration
@ UnsupportedConfiguration
mcprotocol::serial::StatusCode::InvalidArgument
@ InvalidArgument
mcprotocol::serial::StatusCode::Framing
@ Framing
mcprotocol::serial::StatusCode::Cancelled
@ Cancelled
mcprotocol::serial::StatusCode::Ok
@ Ok
mcprotocol::serial::StatusCode::PlcError
@ PlcError
mcprotocol::serial::StatusCode::BufferTooSmall
@ BufferTooSmall
mcprotocol::serial::StatusCode::SumCheckMismatch
@ SumCheckMismatch
mcprotocol::serial::StatusCode::Timeout
@ Timeout
mcprotocol::serial::StatusCode::Parse
@ Parse
mcprotocol::serial::StatusCode::Busy
@ Busy
mcprotocol::serial::StatusCode::Transport
@ Transport
mcprotocol::serial::Status
Result object returned by most public APIs.
Definition
status.hpp:26
mcprotocol::serial::Status::message
const char * message
Definition
status.hpp:29
mcprotocol::serial::Status::plc_error_code
std::uint16_t plc_error_code
Definition
status.hpp:28
mcprotocol::serial::Status::code
StatusCode code
Definition
status.hpp:27
mcprotocol::serial::Status::ok
constexpr bool ok() const noexcept
Definition
status.hpp:31
include
mcprotocol
serial
status.hpp
Generated by
1.9.8