/***************************************************************************
 *   Copyright (C) 2020 by Santiago González                               *
 *                                                                         *
 ***( see copyright.txt file at root folder )*******************************/

#pragma once

#include "usartmodule.h"
#include "mcumodule.h"

class McuUsart : public McuModule, public UsartModule
{
        friend class McuCreator; 

    public:
        McuUsart( eMcu* mcu, QString name, int number ); 
        virtual ~McuUsart(); 

        virtual void sendByte( uint8_t data ) override{ UsartModule::sendByte( data );  }
        virtual void bufferEmpty() override; 
        virtual void frameSent( uint8_t data ) override; 
        virtual void readByte( uint8_t data ) override; 

        virtual uint8_t getBit9Tx() override; 
        virtual void setBit9Rx( uint8_t bit ) override; 

    protected:
        int m_number; 

        bool m_speedx2; 

        regBits_t m_bit9Tx; 
        regBits_t m_bit9Rx; 
}; 
