22class DynamicParser :
public coolSerial::StartOfFrameFoundListener,
public coolSerial::SegmentFoundListener
29 state_.get().update();
38 virtual void update() = 0;
45 void update()
override
51 class SegmentExtract :
public State,
public coolSerial::DynamicSegmentExtractor
54 using DynamicSegmentExtractor::DynamicSegmentExtractor;
55 void update()
override
57 DynamicSegmentExtractor::update();
61 IChannelDataFoundListener& channelDataFoundListener_;
62 StartOfFrameSearch startOfFrameSearch_;
64 SegmentExtract segmentExtract_;
66 std::reference_wrapper<State> state_{startOfFrameSearch_};
69 void startOfFrameFound()
override;
70 void segmentFound(
const coolSerial::Bytes& bytes)
override;
75 uint16_t extractChecksumFromCombinedSegment(
const coolSerial::Bytes& bytes);