45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
|
|
/*
|
|||
|
|
* SerialPacketReader.hh
|
|||
|
|
*
|
|||
|
|
* Created on: 17 <EFBFBD><EFBFBD><EFBFBD>. 2021 <EFBFBD>.
|
|||
|
|
* Author: titov
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef UMLIBRARY_DRIVER_SERIALPACKETREADER_HH_
|
|||
|
|
#define UMLIBRARY_DRIVER_SERIALPACKETREADER_HH_
|
|||
|
|
|
|||
|
|
#include "../systemic/IProcess.hh"
|
|||
|
|
|
|||
|
|
#include "../peripheral/ISerialPort.hh"
|
|||
|
|
#include "../communication/format/BinaryDataPublisher.hh"
|
|||
|
|
|
|||
|
|
namespace driver {
|
|||
|
|
|
|||
|
|
class SerialPacketReader : public systemic::IProcess {
|
|||
|
|
public:
|
|||
|
|
SerialPacketReader( peripheral::ISerialPort & serial_port, communication::IBinaryDataSubscriber & binary_data,
|
|||
|
|
std::pmr::memory_resource * memory_resource, std::size_t bitsize, bool data_invers = false );
|
|||
|
|
|
|||
|
|
//!<21><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
void process();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
std::vector< char, std::pmr::polymorphic_allocator<char> > data_frame;
|
|||
|
|
peripheral::ISerialPort & serial_port; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
communication::IBinaryDataSubscriber & binary_data; //!<
|
|||
|
|
|
|||
|
|
const std::size_t bitsize; //!<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
|||
|
|
|
|||
|
|
enum Phase {
|
|||
|
|
request,
|
|||
|
|
response
|
|||
|
|
} phase = request;
|
|||
|
|
|
|||
|
|
bool data_invers;
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif /* UMLIBRARY_DRIVER_SERIALPACKETREADER_HH_ */
|