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

Revision:
8:5ea891c7d1a1
Parent:
7:9cd16581b578
--- a/MaximInterfaceCore/I2CMasterDecorator.cpp	Mon Jul 22 11:44:07 2019 -0500
+++ b/MaximInterfaceCore/I2CMasterDecorator.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"),
@@ -34,40 +34,39 @@
 
 namespace MaximInterfaceCore {
 
-error_code I2CMasterDecorator::start(uint_least8_t address) {
+Result<void> I2CMasterDecorator::start(uint_least8_t address) {
   return master->start(address);
 }
 
-error_code I2CMasterDecorator::stop() { return master->stop(); }
+Result<void> I2CMasterDecorator::stop() { return master->stop(); }
 
-error_code I2CMasterDecorator::writeByte(uint_least8_t data) {
+Result<void> I2CMasterDecorator::writeByte(uint_least8_t data) {
   return master->writeByte(data);
 }
 
-error_code I2CMasterDecorator::writeBlock(span<const uint_least8_t> data) {
+Result<void> I2CMasterDecorator::writeBlock(span<const uint_least8_t> data) {
   return master->writeBlock(data);
 }
 
-error_code I2CMasterDecorator::doWritePacket(uint_least8_t address,
+Result<void> I2CMasterDecorator::writePacket(uint_least8_t address,
                                              span<const uint_least8_t> data,
-                                             bool sendStop) {
-  return master->writePacket(address, data, sendStop);
+                                             DoStop doStop) {
+  return master->writePacket(address, data, doStop);
+}
+
+Result<uint_least8_t> I2CMasterDecorator::readByte(DoAck doAck) {
+  return master->readByte(doAck);
 }
 
-error_code I2CMasterDecorator::readByte(AckStatus status,
-                                        uint_least8_t & data) {
-  return master->readByte(status, data);
+Result<void> I2CMasterDecorator::readBlock(span<uint_least8_t> data,
+                                           DoAck doAck) {
+  return master->readBlock(data, doAck);
 }
 
-error_code I2CMasterDecorator::readBlock(AckStatus status,
-                                         span<uint_least8_t> data) {
-  return master->readBlock(status, data);
-}
-
-error_code I2CMasterDecorator::doReadPacket(uint_least8_t address,
+Result<void> I2CMasterDecorator::readPacket(uint_least8_t address,
                                             span<uint_least8_t> data,
-                                            bool sendStop) {
-  return master->readPacket(address, data, sendStop);
+                                            DoStop doStop) {
+  return master->readPacket(address, data, doStop);
 }
 
 } // namespace MaximInterfaceCore