Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: DeepCover Embedded Security in IoT MaximInterface MAXREFDES155#
Diff: Links/OneWireMaster.cpp
- Revision:
- 5:a8c83a2e6fa4
- Parent:
- 0:f77ad7f72d04
--- a/Links/OneWireMaster.cpp Fri Jan 19 10:25:02 2018 -0600
+++ b/Links/OneWireMaster.cpp Wed Jan 23 13:11:04 2019 -0600
@@ -35,14 +35,14 @@
namespace MaximInterface {
+static const int maxBitNum = 7;
+
error_code OneWireMaster::writeByteSetLevel(uint_least8_t sendByte,
Level afterLevel) {
error_code result;
- for (int idx = 0; (idx < 8) && !result; idx++) {
- result = writeBit(((sendByte >> idx) & 1) == 1);
- }
- if (!result) {
- result = setLevel(afterLevel);
+ for (int bitNum = 0; (bitNum <= maxBitNum) && !result; ++bitNum) {
+ result = writeBitSetLevel(((sendByte >> bitNum) & 1) == 1,
+ (bitNum == maxBitNum) ? afterLevel : NormalLevel);
}
return result;
}
@@ -51,35 +51,34 @@
Level afterLevel) {
recvByte = 0;
error_code result;
- for (int idx = 0; idx < 8; idx++) {
+ for (int bitNum = 0; bitNum <= maxBitNum; ++bitNum) {
bool recvBit;
- result = readBit(recvBit);
+ result = readBitSetLevel(recvBit,
+ (bitNum == maxBitNum) ? afterLevel : NormalLevel);
if (result) {
break;
}
if (recvBit) {
- recvByte |= (1 << idx);
+ recvByte |= (1 << bitNum);
}
}
- if (!result) {
- result = setLevel(afterLevel);
- }
return result;
}
-error_code OneWireMaster::writeBlock(const uint_least8_t * sendBuf,
- size_t sendLen) {
+error_code OneWireMaster::writeBlock(span<const uint_least8_t> sendBuf) {
error_code result;
- for (size_t idx = 0; (idx < sendLen) && !result; idx++) {
- result = writeByte(sendBuf[idx]);
+ for (span<const uint_least8_t>::index_type i = 0;
+ i < sendBuf.size() && !result; ++i) {
+ result = writeByte(sendBuf[i]);
}
return result;
}
-error_code OneWireMaster::readBlock(uint_least8_t * recvBuf, size_t recvLen) {
+error_code OneWireMaster::readBlock(span<uint_least8_t> recvBuf) {
error_code result;
- for (size_t idx = 0; (idx < recvLen) && !result; idx++) {
- result = readByte(recvBuf[idx]);
+ for (span<uint_least8_t>::index_type i = 0; i < recvBuf.size() && !result;
+ ++i) {
+ result = readByte(recvBuf[i]);
}
return result;
}