/* * BiSSCAdaperLogic.hh * * Created on: 3 сент. 2021 г. * Author: sozonov */ #ifndef UMLIBRARY_DRIVER_BISSCADAPERLOGIC_HH_ #define UMLIBRARY_DRIVER_BISSCADAPERLOGIC_HH_ #include #include "../peripheral/ISerialPort.hh" namespace driver { class BiSSCAdapterLogic : public peripheral::ISerialPort { public: explicit BiSSCAdapterLogic (peripheral::ISerialPort * _isp_source, uint16_t _ACK_bits, uint16_t _line_delay, uint16_t _inv ); explicit BiSSCAdapterLogic (peripheral::ISerialPort * _isp_source, uint16_t _ACK_bits, uint16_t _line_delay, uint16_t _master_bit_count, uint16_t _two_bits_wait, uint16_t _start_bits, uint16_t _cbs_bits ); //peripheral::ISerialPort override functions: virtual bool transmite( const void * bit_stream, int bit_count ) override; virtual bool receive( void * data ) override; virtual bool isDataReady() override; /*!Функция разбора входящего BiSS-C пакета данных. * * @param data - полный пакет данных, вместе с системными битами, которые необходимо отсечь * @return fE - флаг "правильности" поставляемых данных, 1/0 - верный/неверный пакет данных */ bool parceMessage( uint16_t * data ); const bool & getfE () { return fE; }; private: peripheral::ISerialPort * isp_source; //