Implementation of 1-Wire with added Alarm Search Functionality
Dependents: Max32630_One_Wire_Interface
Diff: OneWire_Masters/DS2465/DS2465.hpp
- Revision:
- 34:11fffbe98ef9
- Parent:
- 33:a4c015046956
- Child:
- 35:5d23395628f6
--- a/OneWire_Masters/DS2465/DS2465.hpp Thu Mar 31 11:56:01 2016 -0500 +++ b/OneWire_Masters/DS2465/DS2465.hpp Fri Apr 01 09:29:55 2016 -0500 @@ -12,7 +12,6 @@ class DS2465 : public OneWireMaster, public ISha256MacCoprocessor { public: - enum PageRegion { REGION_FULL_PAGE = 0x03, @@ -56,16 +55,16 @@ // Read pointer, scratchpad, MAC output register, and command register on the DS2465 are considered mutable. //Misc. Functions - OneWireMaster::CmdResult Detect(void); - OneWireMaster::CmdResult Reset(void); // Resets DS2465 (NOTE: This is NOT a 1-Wire Reset) - OneWireMaster::CmdResult WriteConfig(const Config & config); - Config CurrentConfig() const; + OneWireMaster::CmdResult detect(); + OneWireMaster::CmdResult reset(void); // Resets DS2465 (NOTE: This is NOT a 1-Wire Reset) + OneWireMaster::CmdResult writeConfig(const Config & config, bool verify); + Config currentConfig() const; // DS2465 Memory Commands - OneWireMaster::CmdResult ReadMemory(std::uint8_t addr, std::uint8_t * buf, std::size_t bufLen, bool skip_set_pointer = false) const; - OneWireMaster::CmdResult WriteMemory(std::uint8_t addr, const std::uint8_t * buf, std::size_t bufLen) { return CWriteMemory(addr, buf, bufLen); } - OneWireMaster::CmdResult WriteScratchpad(const std::uint8_t * buf, std::size_t bufLen) const { return CWriteMemory(ADDR_SPAD, buf, bufLen); } - OneWireMaster::CmdResult CopyScratchpad(bool dest_secret, unsigned int pageNum, bool notFull, unsigned int segmentNum); + OneWireMaster::CmdResult readMemory(std::uint8_t addr, std::uint8_t * buf, std::size_t bufLen, bool skipSetPointer = false) const; + OneWireMaster::CmdResult writeMemory(std::uint8_t addr, const std::uint8_t * buf, std::size_t bufLen) { return cWriteMemory(addr, buf, bufLen); } + OneWireMaster::CmdResult writeScratchpad(const std::uint8_t * buf, std::size_t bufLen) const { return cWriteMemory(ADDR_SPAD, buf, bufLen); } + OneWireMaster::CmdResult copyScratchpad(bool destSecret, unsigned int pageNum, bool notFull, unsigned int segmentNum); // 1-Wire Master Commands virtual OneWireMaster::CmdResult OWInitMaster(void); @@ -94,14 +93,16 @@ virtual ISha256MacCoprocessor::CmdResult computeSlaveSecret(const DevicePage & devicePage, const DeviceScratchpad & deviceScratchpad, const SlaveSecretData & slaveSecretData); private: + static const unsigned int eepromWriteDelayMs = 10; + static const unsigned int shaComputationDelayMs = 2; mbed::I2C & m_I2C_interface; std::uint8_t m_I2C_address; Config m_curConfig; - OneWireMaster::CmdResult CWriteMemory(std::uint8_t addr, const std::uint8_t * buf, std::size_t bufLen) const; - OneWireMaster::CmdResult PollBusy(std::uint8_t * pStatus = NULL); - OneWireMaster::CmdResult ConfigureLevel(OWLevel level); + OneWireMaster::CmdResult cWriteMemory(std::uint8_t addr, const std::uint8_t * buf, std::size_t bufLen) const; + OneWireMaster::CmdResult pollBusy(std::uint8_t * pStatus = NULL); + OneWireMaster::CmdResult configureLevel(OWLevel level); }; #endif