#pragma once #include #include class W433DataTransmitter { private: static constexpr uint16_t SYNC_TIME = 800; static constexpr uint16_t LARGE_TIME = 2000; static constexpr uint16_t SMALL_TIME = 500; static constexpr uint8_t signature = 0xA5; volatile unsigned char * const _port; unsigned char _pin; void sendBit(const bool bit); void sendSyncpulse(); void sendRawData(const uint8_t data); void sendEndPulse(); public: W433DataTransmitter(volatile unsigned char * const port, unsigned char pin); void send(const uint8_t* const data, uint16_t length); void send(const uint8_t data); void sendPacket(const uint32_t data); };