MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/driver/BiSSCAdaperLogic.hh

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_ */