serial_protocol.h 671 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include <functional>
  3. #include "../logger.h"
  4. #include "../proto_gen/smartknob.pb.h"
  5. #define SERIAL_PROTOCOL_LEGACY 0
  6. #define SERIAL_PROTOCOL_PROTO 1
  7. typedef std::function<void(uint8_t)> ProtocolChangeCallback;
  8. class SerialProtocol : public Logger {
  9. public:
  10. SerialProtocol() : Logger() {}
  11. virtual ~SerialProtocol(){}
  12. virtual void loop() = 0;
  13. virtual void handleState(const PB_SmartKnobState& state) = 0;
  14. virtual void setProtocolChangeCallback(ProtocolChangeCallback cb) {
  15. protocol_change_callback_ = cb;
  16. }
  17. protected:
  18. ProtocolChangeCallback protocol_change_callback_;
  19. };