Files
MarklinController/item.h
uvos dca4421674 add free memory command
add read and write nfc commands
fix function sending
2022-03-25 13:41:02 +01:00

50 lines
1.1 KiB
C++

#pragma once
#include "writepin.h"
#include <util/delay.h>
#include <stdint.h>
#include <avr/io.h>
class Item
{
public:
static constexpr uint8_t HIGH = 2;
static constexpr uint8_t LOW = 1;
static constexpr uint8_t OFF = 0;
private:
static constexpr unsigned char _pinHighA = PD5;
static constexpr unsigned char _pinLowA = PD4;
static constexpr unsigned char _pinHighB = PD2;
static constexpr unsigned char _pinLowB = PD3;
static constexpr uint8_t SEND_COUNT = 2;
uint8_t _address;
protected:
inline static void off();
static void sendBit(const bool bit);
static void sendAddress(uint8_t address);
uint16_t packetAddSpeed();
uint16_t packetAddDirection();
uint16_t packetAddFunction(const uint8_t function);
uint16_t assemblePacket();
public:
inline static bool directSendBlock = false;
static void setOutput(const uint8_t state);
Item(const uint8_t address);
void sendRaw(const uint16_t data, bool single = false);
static void sendRawAddr(const uint8_t address, const uint16_t data, bool single = false);
void setAddress(const uint8_t address);
uint8_t getAddress();
};