Program Listing for File parser.hpp
↰ Return to documentation for file (include/whill_driver/model_cr2/parser.hpp
)
// Copyright (c) 2024 WHILL, Inc.
// Released under the MIT license
// https://opensource.org/licenses/mit-license.php
#ifndef WHILL_DRIVER_MODEL_CR2_PARSER_H_
#define WHILL_DRIVER_MODEL_CR2_PARSER_H_
#include <cstdint>
namespace whill_driver
{
namespace model_cr2
{
enum class ParseState
{
kWaitProtocolSign = 0,
kWaitDataLength,
kWaitPayload,
kWaitChecksum,
};
constexpr uint8_t kDatasetMaxSize = 64;
constexpr uint8_t kProtocolSign = 0xAF;
class Parser
{
public:
Parser();
~Parser();
int Parse(uint8_t target_buf[], int target_len, uint8_t payload[]);
uint8_t Checksum(uint8_t buf[], int len);
private:
uint8_t buf_[kDatasetMaxSize];
ParseState state_;
int index_;
int data_length_;
void Clear();
};
} // namespace model_cr2
} // namespace whill_driver
#endif // WHILL_DRIVER_MODEL_CR2_PARSER_H_