#include "Utility.h" void utility::handleIoctlError(const char* const customPrintout) { #if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 if(customPrintout != nullptr) { sif::warning << customPrintout << std::endl; } sif::warning << "handleIoctlError: Error code " << errno << ", "<< strerror(errno) << std::endl; #else if(customPrintout != nullptr) { sif::printWarning("%s\n", customPrintout); } sif::printWarning("handleIoctlError: Error code %d, %s\n", errno, strerror(errno)); #endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ #endif /* FSFW_VERBOSE_LEVEL >= 1 */ } utility::UnixFileHelper::UnixFileHelper(std::string device, int* fileDescriptor, int flags, std::string diagnosticPrefix): fileDescriptor(fileDescriptor) { if(fileDescriptor == nullptr) { return; } *fileDescriptor = open(device.c_str(), flags); if (*fileDescriptor < 0) { #if FSFW_VERBOSE_LEVEL >= 1 #if FSFW_CPP_OSTREAM_ENABLED == 1 sif::warning << diagnosticPrefix <<"Opening device failed with error code " << errno << "." << std::endl; sif::warning << "Error description: " << strerror(errno) << std::endl; #else sif::printError("%sOpening device failed with error code %d.\n", diagnosticPrefix); sif::printWarning("Error description: %s\n", strerror(errno)); #endif /* FSFW_CPP_OSTREAM_ENABLED == 1 */ #endif /* FSFW_VERBOSE_LEVEL >= 1 */ openStatus = OPEN_FILE_FAILED; } } utility::UnixFileHelper::~UnixFileHelper() { if(fileDescriptor != nullptr) { close(*fileDescriptor); } } ReturnValue_t utility::UnixFileHelper::getOpenResult() const { return openStatus; }