Device interface library for multiple platforms including Mbed.
Dependents: DeepCover Embedded Security in IoT MaximInterface MAXREFDES155#
Maxim Interface is a library framework focused on providing flexible and expressive hardware interfaces. Both communication interfaces such as I2C and 1-Wire and device interfaces such as DS18B20 are supported. Modern C++ concepts are used extensively while keeping compatibility with C++98/C++03 and requiring no external dependencies. The embedded-friendly design does not depend on exceptions or RTTI.
The full version of the project is hosted on GitLab: https://gitlab.com/iabenz/MaximInterface
Diff: MaximInterfaceCore/LoggingOneWireMaster.cpp
- Revision:
- 8:5ea891c7d1a1
- Parent:
- 7:9cd16581b578
--- a/MaximInterfaceCore/LoggingOneWireMaster.cpp Mon Jul 22 11:44:07 2019 -0500 +++ b/MaximInterfaceCore/LoggingOneWireMaster.cpp Mon Sep 16 11:13:37 2019 -0500 @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved. +* Copyright (C) Maxim Integrated Products, Inc., All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -30,7 +30,7 @@ * ownership rights. *******************************************************************************/ -#include "HexConversions.hpp" +#include "HexString.hpp" #include "LoggingOneWireMaster.hpp" using std::string; @@ -45,7 +45,7 @@ if (read) { dataBuilder.append(1, '['); } - dataBuilder.append(byteArrayToHexString(data.subspan(i, 1))); + dataBuilder.append(toHexString(data.subspan(i, 1))); if (read) { dataBuilder.append(1, ']'); } @@ -60,14 +60,14 @@ } } -error_code LoggingOneWireMaster::reset() { - error_code result = OneWireMasterDecorator::reset(); - tryWriteMessage(!result ? "RP" : "RN"); +Result<void> LoggingOneWireMaster::reset() { + Result<void> result = OneWireMasterDecorator::reset(); + tryWriteMessage(result ? "RP" : "RN"); return result; } -error_code LoggingOneWireMaster::writeByteSetLevel(uint_least8_t sendByte, - Level afterLevel) { +Result<void> LoggingOneWireMaster::writeByteSetLevel(uint_least8_t sendByte, + Level afterLevel) { tryWriteMessage(formatDataString(make_span(&sendByte, 1), false)); if (afterLevel == StrongLevel) { tryWriteMessage(strongLevelString); @@ -75,35 +75,35 @@ return OneWireMasterDecorator::writeByteSetLevel(sendByte, afterLevel); } -error_code LoggingOneWireMaster::readByteSetLevel(uint_least8_t & recvByte, - Level afterLevel) { - error_code result = - OneWireMasterDecorator::readByteSetLevel(recvByte, afterLevel); - if (!result) { - tryWriteMessage(formatDataString(make_span(&recvByte, 1), true)); +Result<uint_least8_t> LoggingOneWireMaster::readByteSetLevel(Level afterLevel) { + const Result<uint_least8_t> recvByte = + OneWireMasterDecorator::readByteSetLevel(afterLevel); + if (recvByte) { + tryWriteMessage(formatDataString(make_span(&recvByte.value(), 1), true)); if (afterLevel == StrongLevel) { tryWriteMessage(strongLevelString); } } - return result; + return recvByte; } -error_code LoggingOneWireMaster::writeBlock(span<const uint_least8_t> sendBuf) { +Result<void> +LoggingOneWireMaster::writeBlock(span<const uint_least8_t> sendBuf) { tryWriteMessage(formatDataString(sendBuf, false)); return OneWireMasterDecorator::writeBlock(sendBuf); } -error_code LoggingOneWireMaster::readBlock(span<uint_least8_t> recvBuf) { - error_code result = OneWireMasterDecorator::readBlock(recvBuf); - if (!result) { +Result<void> LoggingOneWireMaster::readBlock(span<uint_least8_t> recvBuf) { + Result<void> result = OneWireMasterDecorator::readBlock(recvBuf); + if (result) { tryWriteMessage(formatDataString(recvBuf, true)); } return result; } -error_code LoggingOneWireMaster::setSpeed(Speed newSpeed) { - error_code result = OneWireMasterDecorator::setSpeed(newSpeed); - if (!result) { +Result<void> LoggingOneWireMaster::setSpeed(Speed newSpeed) { + Result<void> result = OneWireMasterDecorator::setSpeed(newSpeed); + if (result) { string newSpeedString; switch (newSpeed) { case StandardSpeed: @@ -121,9 +121,9 @@ return result; } -error_code LoggingOneWireMaster::setLevel(Level newLevel) { - error_code result = OneWireMasterDecorator::setLevel(newLevel); - if (!result) { +Result<void> LoggingOneWireMaster::setLevel(Level newLevel) { + Result<void> result = OneWireMasterDecorator::setLevel(newLevel); + if (result) { string newLevelString; switch (newLevel) { case NormalLevel: