Implementation of 1-Wire with added Alarm Search Functionality

Dependents:   Max32630_One_Wire_Interface

Revision:
116:8058bb54e959
Parent:
115:a1ca2f3bf46d
Child:
117:632abc887f95
--- a/Slaves/Memory/DS2431/DS2431.h	Mon Aug 22 05:38:20 2016 +0000
+++ b/Slaves/Memory/DS2431/DS2431.h	Mon Aug 22 21:35:47 2016 +0000
@@ -51,7 +51,7 @@
         *
         * @details Instantiate a DS2431 object that encapsulates the 
         * 1-Wire master and ROM commands for selecting the device via 
-        * the RandomAccessRomIterator sub-class passed as an argumnent 
+        * the RandomAccessRomIterator sub-class passed as an argument 
         * to the constructor.  
         *
         * This allows the user to focus on the use of the DS2431 in
@@ -70,7 +70,50 @@
         DS2431(RandomAccessRomIterator &selector);
         
         /**********************************************************//**
-        * @brief writeScratchPad
+        * @brief writeMemory
+        *
+        * @details Writes data to EEPROM.  Wraps up writeScratchPad,
+        * readScratchPad and copyScratchPad into single function.
+        * 
+        * On Entry:
+        * @param[in] targetAddress - EEPROM memory address to start 
+        * writing at.
+        *
+        * @param[in] data - Pointer to memory holding data.
+        *
+        * @param[in] numBytes - Number of bytes to write.
+        *
+        * On Exit: 
+        *
+        * @return Result of operation
+        **************************************************************/
+        OneWireSlave::CmdResult writeMemory(uint16_t targetAddress, const uint8_t *data, uint8_t numBytes);
+        
+        /**********************************************************//**
+        * @brief readMemory
+        *
+        * @details Reads block of data from EEPROM memory.
+        *
+        * On Entry:
+        * @param[in] targetAddress - EEPROM memory address to start.
+        * reading from
+        *
+        * @param[out] data - Pointer to memory for storing data.
+        *
+        * @param[in] numBytes - Number of bytes to read.
+        *
+        * On Exit:
+        *
+        * @return Result of operation
+        **************************************************************/
+        OneWireSlave::CmdResult readMemory(uint16_t targetAddress, uint8_t *data, uint8_t numBytes);
+        
+    private:
+    
+        typedef array<uint8_t, 8> Scratchpad;
+    
+        /**********************************************************//**
+        * @brief writeScratchpad
         *
         * @details Writes 8 bytes to the scratchpad.
         *
@@ -78,30 +121,30 @@
         * @param[in] targetAddress - EEPROM memory address that this data 
         * will be copied to.  Must be on row boundary.
         *
-        * @param[in] data - Pointer to memory holding data.
+        * @param[in] data - reference to bounded array type Scratchpad.
         *
         * On Exit:
         *
         * @return Result of operation
         **************************************************************/
-        OneWireSlave::CmdResult writeScratchPad(uint16_t targetAddress, uint8_t *data);
+        OneWireSlave::CmdResult writeScratchpad(uint16_t targetAddress, const Scratchpad &data);
         
         /**********************************************************//**
-        * @brief readScratchPad
+        * @brief readScratchpad
         *
         * @details Reads contents of scratchpad.
         *
         * On Entry:
-        * @param[in] data - Pointer to memory for storing data, 11 bytes.
+        * @param[out] data - reference to bounded array type Scratchpad.
         *
         * On Exit:
         *
         * @return Result of operation
         **************************************************************/
-        OneWireSlave::CmdResult readScratchPad(uint8_t *data);
+        OneWireSlave::CmdResult readScratchpad(Scratchpad &data, uint8_t &esByte);
         
         /**********************************************************//**
-        * @brief copyScratchPad
+        * @brief copyScratchpad
         *
         * @details Copies contents of sractshpad to EEPROM.
         *
@@ -115,47 +158,7 @@
         *
         * @return Result of operation
         **************************************************************/
-        OneWireSlave::CmdResult copyScratchPad(uint16_t targetAddress, uint8_t esByte);
-        
-        /**********************************************************//**
-        * @brief writeBlock
-        *
-        * @details Writes data to EEPROM.  Wraps up writeScratchPad,
-        * readScratchPad and copyScratchPad into single function.
-        * 
-        * On Entry:
-        * @param[in] targetAddress - EEPROM memory address to start 
-        * writting at.
-        *
-        * @param[in] data - Pointer to memory holding data.
-        *
-        * @param[in] numBytes - Number of bytes to write.
-        *
-        * On Exit: 
-        *
-        * @return Result of operation
-        **************************************************************/
-        OneWireSlave::CmdResult writeBlock(uint16_t targetAddress, uint8_t *data, uint8_t numBytes);
-        
-        /**********************************************************//**
-        * @brief readBlock
-        *
-        * @details Reads block of data from EEPROM memory.
-        *
-        * On Entry:
-        * @param[in] targetAddress - EEPROM memory address to start.
-        * reading from
-        *
-        * @param[in] data - Pointer to memory for storing data.
-        *
-        * @param[in] numBytes - Number of bytes to read.
-        *
-        * On Exit:
-        *
-        * @return Result of operation
-        **************************************************************/
-        OneWireSlave::CmdResult readBlock(uint16_t targetAddress, uint8_t *data, uint8_t numBytes);
-    
+        OneWireSlave::CmdResult copyScratchpad(uint16_t targetAddress, uint8_t esByte);
     };
 }