Formatted code (#1007)

* Updated style

* Updated files

* fixed new line

* Updated spacing

* File fix WIP

* Updated to clang 13

* updated comment style

* Removed old comment code
This commit is contained in:
jLynx 2023-05-19 08:16:05 +12:00 committed by GitHub
parent 7aca7ce74d
commit 033c4e9a5b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
599 changed files with 70746 additions and 66896 deletions

View file

@ -31,109 +31,106 @@
#include "baseband_packet.hpp"
struct NeverMatch {
bool operator()(const BitHistory&, const size_t) const {
return false;
}
bool operator()(const BitHistory&, const size_t) const {
return false;
}
};
struct FixedLength {
bool operator()(const BitHistory&, const size_t symbols_received) const {
return symbols_received >= length;
}
bool operator()(const BitHistory&, const size_t symbols_received) const {
return symbols_received >= length;
}
const size_t length;
const size_t length;
};
template<typename PreambleMatcher, typename UnstuffMatcher, typename EndMatcher>
template <typename PreambleMatcher, typename UnstuffMatcher, typename EndMatcher>
class PacketBuilder {
public:
using PayloadHandlerFunc = std::function<void(const baseband::Packet& packet)>;
public:
using PayloadHandlerFunc = std::function<void(const baseband::Packet& packet)>;
PacketBuilder(
const PreambleMatcher preamble_matcher,
const UnstuffMatcher unstuff_matcher,
const EndMatcher end_matcher,
PayloadHandlerFunc payload_handler
) : payload_handler { std::move(payload_handler) },
preamble(preamble_matcher),
unstuff(unstuff_matcher),
end(end_matcher)
{
}
PacketBuilder(
const PreambleMatcher preamble_matcher,
const UnstuffMatcher unstuff_matcher,
const EndMatcher end_matcher,
PayloadHandlerFunc payload_handler)
: payload_handler{std::move(payload_handler)},
preamble(preamble_matcher),
unstuff(unstuff_matcher),
end(end_matcher) {
}
void configure(
const PreambleMatcher preamble_matcher,
const UnstuffMatcher unstuff_matcher
) {
preamble = preamble_matcher;
unstuff = unstuff_matcher;
void configure(
const PreambleMatcher preamble_matcher,
const UnstuffMatcher unstuff_matcher) {
preamble = preamble_matcher;
unstuff = unstuff_matcher;
reset_state();
}
reset_state();
}
void execute(
const uint_fast8_t symbol
) {
bit_history.add(symbol);
void execute(
const uint_fast8_t symbol) {
bit_history.add(symbol);
switch(state) {
case State::Preamble:
if( preamble(bit_history, packet.size()) ) {
state = State::Payload;
}
break;
switch (state) {
case State::Preamble:
if (preamble(bit_history, packet.size())) {
state = State::Payload;
}
break;
case State::Payload:
if( !unstuff(bit_history, packet.size()) ) {
packet.add(symbol);
}
case State::Payload:
if (!unstuff(bit_history, packet.size())) {
packet.add(symbol);
}
if( end(bit_history, packet.size()) ) {
// NOTE: This check is to avoid std::function nullptr check, which
// brings in "_ZSt25__throw_bad_function_callv" and a lot of extra code.
// TODO: Make payload_handler known at compile time.
if( payload_handler ) {
packet.set_timestamp(Timestamp::now());
payload_handler(packet);
}
reset_state();
} else {
if( packet_truncated() ) {
reset_state();
}
}
break;
if (end(bit_history, packet.size())) {
// NOTE: This check is to avoid std::function nullptr check, which
// brings in "_ZSt25__throw_bad_function_callv" and a lot of extra code.
// TODO: Make payload_handler known at compile time.
if (payload_handler) {
packet.set_timestamp(Timestamp::now());
payload_handler(packet);
}
reset_state();
} else {
if (packet_truncated()) {
reset_state();
}
}
break;
default:
reset_state();
break;
}
}
default:
reset_state();
break;
}
}
private:
enum State {
Preamble,
Payload,
};
private:
enum State {
Preamble,
Payload,
};
bool packet_truncated() const {
return packet.size() >= packet.capacity();
}
bool packet_truncated() const {
return packet.size() >= packet.capacity();
}
const PayloadHandlerFunc payload_handler;
const PayloadHandlerFunc payload_handler;
BitHistory bit_history { };
PreambleMatcher preamble { };
UnstuffMatcher unstuff { };
EndMatcher end { };
BitHistory bit_history{};
PreambleMatcher preamble{};
UnstuffMatcher unstuff{};
EndMatcher end{};
State state { State::Preamble };
baseband::Packet packet { };
State state{State::Preamble};
baseband::Packet packet{};
void reset_state() {
packet.clear();
state = State::Preamble;
}
void reset_state() {
packet.clear();
state = State::Preamble;
}
};
#endif/*__PACKET_BUILDER_H__*/
#endif /*__PACKET_BUILDER_H__*/