added updates manually

This commit is contained in:
2021-04-29 15:58:00 +02:00
parent 4f6fe6959f
commit 106bdbf233
30 changed files with 203 additions and 365 deletions

View File

@ -14,35 +14,44 @@ TestEchoComIF::TestEchoComIF(object_id_t objectId):
TestEchoComIF::~TestEchoComIF() {}
ReturnValue_t TestEchoComIF::initializeInterface(CookieIF * cookie) {
TestCookie* testCookie = dynamic_cast<TestCookie*>(cookie);
if(testCookie == nullptr) {
DummyCookie* dummyCookie = dynamic_cast<DummyCookie*>(cookie);
if(dummyCookie == nullptr) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::warning << "TestEchoComIF::initializeInterface: Invalid cookie!" << std::endl;
#else
sif::printWarning("TestEchoComIF::initializeInterface: Invalid cookie!\n");
#endif
return HasReturnvaluesIF::RETURN_FAILED;
return NULLPOINTER;
}
auto resultPair = replyMap.emplace(
dummyCookie->getAddress(), ReplyBuffer(dummyCookie->getReplyMaxLen()));
if(not resultPair.second) {
return HasReturnvaluesIF::RETURN_FAILED;
}
replyBuffer.reserve(testCookie->getReplyMaxLen());
replyBuffer.resize(testCookie->getReplyMaxLen());
return RETURN_OK;
}
ReturnValue_t TestEchoComIF::sendMessage(CookieIF *cookie,
const uint8_t * sendData, size_t sendLen) {
if(sendLen > replyBuffer.size()) {
DummyCookie* dummyCookie = dynamic_cast<DummyCookie*>(cookie);
if(dummyCookie == nullptr) {
return NULLPOINTER;
}
ReplyBuffer& replyBuffer = replyMap.find(dummyCookie->getAddress())->second;
if(sendLen > replyBuffer.capacity()) {
#if FSFW_CPP_OSTREAM_ENABLED == 1
sif::warning << "TestEchoComIF::sendMessage: Send length larger than current reply buffer "
"length. Allocating additional memory!" << std::endl;
sif::warning << "TestEchoComIF::sendMessage: Send length " << sendLen << " larger than "
"current reply buffer length!" << std::endl;
#else
sif::printWarning("TestEchoComIF::sendMessage: Send length larger than current reply buffer "
"length. Allocating additional memory!\n");
sif::printWarning("TestEchoComIF::sendMessage: Send length %d larger than current "
"reply buffer length!\n", sendLen);
#endif
replyBuffer.reserve(sendLen);
replyBuffer.resize(sendLen);
return HasReturnvaluesIF::RETURN_FAILED;
}
memcpy(replyBuffer.data(),sendData, sendLen);
dummyBufferSize = sendLen;
replyBuffer.resize(sendLen);
memcpy(replyBuffer.data(), sendData, sendLen);
return RETURN_OK;
}
@ -57,9 +66,14 @@ ReturnValue_t TestEchoComIF::requestReceiveMessage(CookieIF *cookie,
ReturnValue_t TestEchoComIF::readReceivedMessage(CookieIF *cookie,
uint8_t **buffer, size_t *size) {
DummyCookie* dummyCookie = dynamic_cast<DummyCookie*>(cookie);
if(dummyCookie == nullptr) {
return NULLPOINTER;
}
ReplyBuffer& replyBuffer = replyMap.find(dummyCookie->getAddress())->second;
*buffer = replyBuffer.data();
*size = dummyBufferSize;
this->dummyBufferSize = 0;
*size = replyBuffer.size();
dummyReplyCounter ++;
if(dummyReplyCounter == 10) {