1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

dumper: add binary socket and enable length and datatype for the socket com

This commit is contained in:
Manuel Pitz 2021-06-25 15:32:40 +02:00
parent c49ee5b21c
commit 54536ee627
2 changed files with 28 additions and 2 deletions

View file

@ -46,7 +46,8 @@ public:
int openSocket();
int closeSocket();
void writeData(unsigned len, double *yData, double *xData = nullptr);
void writeDataCSV(unsigned len, double *yData, double *xData = nullptr);
void writeDataBinary(unsigned len, double *yData, double *xData = nullptr);
};
} /* namespace node */

View file

@ -74,7 +74,32 @@ int Dumper::closeSocket()
return 0;
}
void Dumper::writeData(unsigned len, double *yData, double *xData)
void Dumper::writeDataBinary(unsigned len, double *yData, double *xData){
if (yData == nullptr)
return;
unsigned dataLen = len * sizeof(yData[0]);
long unsigned int bytesWritten = write(socketFd, &dataLen, sizeof(dataLen));
if(bytesWritten != sizeof(len)) {
logger->warn("Could not send all content to socket {}", socketName);
warningCounter++;
}
bytesWritten = write(socketFd, "d000", 4);
if(bytesWritten != 4) {
logger->warn("Could not send all content to socket {}", socketName);
warningCounter++;
}
bytesWritten = write(socketFd, yData, dataLen );
if (bytesWritten != dataLen && (!supressRepeatedWarning || warningCounter <1 )) {
logger->warn("Could not send all content to socket {}", socketName);
warningCounter++;
}
}
void Dumper::writeDataCSV(unsigned len, double *yData, double *xData)
{
for (unsigned i = 0; i<len; i++) {
std::stringstream ss;