Extended MaximInterface

Dependents:   mbed_DS28EC20_GPIO

Revision:
8:211d1b8f730c
Parent:
6:a8c83a2e6fa4
--- a/Links/I2CMaster.cpp	Tue Jul 24 08:33:31 2018 +0000
+++ b/Links/I2CMaster.cpp	Wed Apr 03 12:33:10 2019 +0000
@@ -35,20 +35,21 @@
 
 namespace MaximInterface {
 
-error_code I2CMaster::writeBlock(const uint_least8_t * data, size_t dataLen) {
+error_code I2CMaster::writeBlock(span<const uint_least8_t> data) {
   error_code result;
-  for (size_t i = 0; (i < dataLen) && !result; i++) {
+  for (span<const uint_least8_t>::index_type i = 0;
+       i < data.size() && !result; ++i) {
     result = writeByte(data[i]);
   }
   return result;
 }
 
 error_code I2CMaster::writePacketImpl(uint_least8_t address,
-                                      const uint_least8_t * data,
-                                      size_t dataLen, bool sendStop) {
+                                      span<const uint_least8_t> data,
+                                      bool sendStop) {
   error_code result = start(address & 0xFE);
   if (!result) {
-    result = writeBlock(data, dataLen);
+    result = writeBlock(data);
   }
   if (sendStop) {
     error_code stopResult = stop();
@@ -59,21 +60,19 @@
   return result;
 }
 
-error_code I2CMaster::readBlock(AckStatus status, uint_least8_t * data,
-                                size_t dataLen) {
+error_code I2CMaster::readBlock(AckStatus status, span<uint_least8_t> data) {
   error_code result;
-  for (size_t i = 0; (i < dataLen) && !result; i++) {
-    result = readByte(i == (dataLen - 1) ? status : Ack, data[i]);
+  for (span<uint_least8_t>::index_type i = 0; i < data.size() && !result; ++i) {
+    result = readByte(i == (data.size() - 1) ? status : Ack, data[i]);
   }
   return result;
 }
 
 error_code I2CMaster::readPacketImpl(uint_least8_t address,
-                                     uint_least8_t * data, size_t dataLen,
-                                     bool sendStop) {
+                                     span<uint_least8_t> data, bool sendStop) {
   error_code result = start(address | 0x01);
   if (!result) {
-    result = readBlock(Nack, data, dataLen);
+    result = readBlock(Nack, data);
   }
   if (sendStop) {
     error_code stopResult = stop();
@@ -102,4 +101,4 @@
   return instance;
 }
 
-} // namespace MaximInterface
\ No newline at end of file
+} // namespace MaximInterface