8#include <boost/asio.hpp>
13 :
DummyProtocol0(parent), _nextAddressInWords(0), _nWordsLeft(0) {}
27 uint32_t addressInWords = buffer.at(1);
28 uint64_t addressInBytes = addressInWords * 4;
29 uint32_t nWordsTotal = buffer.at(2);
31 if((buffer.size() - 3) < nWordsTotal) {
32 uint32_t nWordsInThisBuffer = buffer.size() - 3;
37 BAR, addressInBytes,
reinterpret_cast<int32_t*
>(&(buffer.at(3))), 4 * nWordsInThisBuffer);
51 uint32_t nWordsInThisBuffer = buffer.size();
54 reinterpret_cast<int32_t*
>(buffer.data()), 4 * nWordsInThisBuffer);
64 reinterpret_cast<int32_t*
>(buffer.data()), 4 *
_nWordsLeft);
static const int32_t WRITE_SUCCESS_INDICATION
static const uint32_t INSIDE_MULTI_WORD_WRITE
static const uint32_t ACCEPT_NEW_COMMAND
static const uint32_t HELLO
void sendSingleWord(int32_t response)
void readRegisterAndSendData(std::vector< uint32_t > &buffer)
void write(std::vector< uint32_t > data)
std::shared_ptr< DummyBackend > _registerSpace
static const uint32_t REBOT_MAGIC_WORD
Only put commands which don't exist in all versions, or behave differently.
RebotDummySession & _parent
uint32_t multiWordWrite(std::vector< uint32_t > &buffer) override
First protocol version that implements hello.
uint32_t protocolVersion() const override
implement this for EVERY protocol version
static const uint64_t BAR
void multiWordRead(std::vector< uint32_t > &buffer) override
The multi word read is not limited in the size any more.
uint32_t _nextAddressInWords
void hello(std::vector< uint32_t > &buffer) override
First protocol version that implements hello.
uint32_t continueMultiWordWrite(std::vector< uint32_t > &buffer) override
DummyProtocol1(RebotDummySession &parent)