#pragma once #include "writepin.h" #include #include #include class Train { private: uint8_t _address; static const unsigned char _pinHigh = PD3; static const unsigned char _pinLow = PD2; static const uint8_t SEND_COUNT = 4; uint8_t lastSpeed = 0; void sendBit(const bool bit); void sendAddress(); void sendData(const uint8_t data); public: static const uint8_t HIGH = 2; static const uint8_t LOW = 1; static const uint8_t OFF = 0; static void setOutput(const uint8_t state); Train(const uint8_t address); Train(); void resendSpeed(); void setSpeed(uint8_t speed); void reverse(); uint8_t getAddress(); uint8_t getSpeed(); void setAddress(const uint8_t address); void sendFunction(const uint8_t function); };