MIP_SDK
v3.0.0-425-g6df21bd
MicroStrain Communications Library for embedded systems
|
Go to the documentation of this file.
31 template<
class Lambda>
34 template<
class T,
bool (T::*Callback)(const PacketView&, Timestamp)>
37 template<
class T,
bool (*Callback)(T&, const PacketView&, Timestamp)>
64 template<
class FunctionOrLambda>
69 return *(
static_cast<FunctionOrLambda*
>(obj))(
mip::PacketView(*packet), timestamp );
96 template<
class T,
bool (T::*Callback)(const PacketView&, Timestamp)>
101 return (
static_cast<T*
>(obj)->*Callback)(
PacketView(pkt), timestamp);
126 template<
class T,
bool (*Callback)(T&, const PacketView&, Timestamp)>
131 return (*Callback)(*
static_cast<T*
>(obj),
PacketView(pkt), timestamp);
constexpr pointer data() const noexcept
Definition: span.hpp:67
size_t mip_parser_parse(mip_parser *parser, const uint8_t *input_buffer, size_t input_length, mip_timestamp timestamp)
Parse packets from a buffer.
Definition: mip_parser.c:187
A collection of C++ classes and functions covering the full mip api.
Definition: commands_3dm.c:11
void mip_parser_set_callback(mip_parser *parser, mip_packet_callback callback, void *callback_object)
mip_parser_set_callback
Definition: mip_parser.c:464
mip_timeout mip_parser_timeout(const mip_parser *parser)
Returns the packet timeout of the parser.
Definition: mip_parser.c:440
void mip_parser_set_timeout(mip_parser *parser, mip_timeout timeout)
Changes the timeout of the MIP parser.
Definition: mip_parser.c:452
constexpr size_t size() const noexcept
Definition: span.hpp:69
Implementation of std::span from C++20.
Definition: span.hpp:42
Structure representing a MIP Packet.
Definition: mip_packet.h:50
size_t parse(const uint8_t *inputBuffer, size_t inputCount, Timestamp timestamp)
Parse packets from a buffer.
Definition: mip_parser.hpp:44
void flush()
Processes all previously buffered data.
Definition: mip_parser.hpp:51
bool(* mip_packet_callback)(void *user, const mip_packet_view *packet, mip_timestamp timestamp)
Callback function which receives parsed MIP packets.
Definition: mip_parser.h:48
void mip_parser_flush(mip_parser *parser)
Processes all previously buffered data.
Definition: mip_parser.c:394
MIP Parser state.
Definition: mip_parser.h:58
void mip_parser_init(mip_parser *parser, mip_packet_callback callback, void *callback_object, mip_timeout timeout)
Initializes the MIP parser.
Definition: mip_parser.c:32
uint_least16_t mip_parser_get_write_ptr(mip_parser *parser, uint8_t **ptr_out)
Gets a pointer into which a small amount of data may be written for parsing.
Definition: mip_parser.c:427
size_t parse(microstrain::Span< const uint8_t > data, Timestamp timestamp)
Parse packets from a buffer (span version).
Definition: mip_parser.hpp:48
void mip_parser_reset(mip_parser *parser)
Resets the MIP parser.
Definition: mip_parser.c:51
Parser(Timeout timeout)
Construct without a callback.
Definition: mip_parser.hpp:27
microstrain::EmbeddedTimestamp Timestamp
Definition: mip_types.h:50
Parser(C::mip_packet_callback callback, void *callbackObject, Timeout timeout)
Initializes the MIP parser.
Definition: mip_parser.hpp:23
microstrain::EmbeddedTimeout Timeout
Definition: mip_types.h:51
void reset()
Resets the MIP parser.
Definition: mip_parser.hpp:41
Timeout timeout() const
Returns the packet timeout of the parser.
Definition: mip_parser.hpp:58
Parser(bool(*callback)(void *, const PacketView *, Timestamp), void *callbackObject, Timeout timeout)
Initializes the MIP parser.
Definition: mip_parser.hpp:25
C++ class representing a view of a MIP packet.
Definition: mip_packet.hpp:35
C++ class representing a MIP parser.
Definition: mip_parser.hpp:19
microstrain::Span< uint8_t > getWritePtr()
Gets a pointer into which a small amount of data may be written for parsing.
Definition: mip_parser.hpp:55
void setCallback(C::mip_packet_callback callback, void *callbackObject)
Definition: mip_parser.hpp:29
void setTimeout(Timeout timeout)
Changes the timeout of the MIP parser.
Definition: mip_parser.hpp:60