65 lines
2.3 KiB
C++
65 lines
2.3 KiB
C++
/*
|
|
* BiSSCAdaperLogic.hh
|
|
*
|
|
* Created on: 3 ñåíò. 2021 ã.
|
|
* Author: sozonov
|
|
*/
|
|
|
|
#ifndef UMLIBRARY_DRIVER_BISSCADAPERLOGIC_HH_
|
|
#define UMLIBRARY_DRIVER_BISSCADAPERLOGIC_HH_
|
|
#include <stdint.h>
|
|
|
|
#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; //<! Èíòåðôåéñ âõîäíûõ äàííûõ ïîñëåäîâàòåëüíîãî ïîðòà.
|
|
uint16_t master_bits_count; //<! Êîëè÷åñòâî áèò, êîòîðûå çàïðîñèë ìàñòåð.
|
|
|
|
const uint16_t line_delay; //<! Áèòû êîìïåíñàöèè çàäåðæêè íà ëèíèè.
|
|
const uint16_t two_bits_wait; //<! Äâà áèòà îæèäàíèÿ, â ñîîòâåòñòâèè ñ ïðîòîêîëîì.
|
|
const uint16_t ACK_bits; //<! Êîëè÷åñòâî íóëåâûõ áèò.
|
|
const uint16_t start_bits; //<! Êîëè÷åñòâî ñòàðòîâûõ áèò.
|
|
const uint16_t cbs_bits; //<! Áèò îòâåòà îò ñëåéâà (control bit slave).
|
|
const uint16_t f_inversion; //<! Ôëàã èíâåðñèè âõîäíûõ äàííûõ. ( 0/1 - íå èíâåðòèðîâàíû/ èíâåðòèðîâàíû)
|
|
|
|
bool fE; //<! Ôëàã îøèáêè ïîëó÷åííîãî ïàêåòà äàííûõ.
|
|
|
|
const uint16_t tech_bits_size;
|
|
|
|
uint16_t size_of_array;
|
|
uint16_t num_of_cpy_byte;
|
|
|
|
uint16_t buf_data_array[32];
|
|
};
|
|
|
|
} /* namespace driver */
|
|
|
|
#endif /* UMLIBRARY_DRIVER_BISSCADAPERLOGIC_HH_ */
|