Implementation of 1-Wire with added Alarm Search Functionality
Dependents: Max32630_One_Wire_Interface
Diff: OneWireSlave.h
- Revision:
- 77:529edb329ee0
- Parent:
- 76:84e6c4994e29
- Child:
- 78:0cbbac7f2016
diff -r 84e6c4994e29 -r 529edb329ee0 OneWireSlave.h --- a/OneWireSlave.h Sat May 14 14:27:56 2016 -0500 +++ b/OneWireSlave.h Mon May 16 10:36:30 2016 -0500 @@ -35,6 +35,7 @@ #include <stddef.h> #include "RomId.h" +#include "RomIterator.h" namespace OneWire { @@ -48,17 +49,29 @@ { Success, CommunicationError, + CrcError, TimeoutError, OperationFailure }; /// 1-Wire ROM ID for this slave device. RomId romId; + + private: + RandomAccessRomIterator & selector; protected: - OneWireMaster * p_owMaster; + /// @param selector Provides 1-Wire ROM selection and bus access. + OneWireSlave(RandomAccessRomIterator & selector) : selector(selector) { } - OneWireSlave(OneWireMaster * p_owMaster = NULL) : p_owMaster(p_owMaster) { } + /// Select this slave device by ROM ID. + OneWireMaster::CmdResult selectDevice() const + { + return selector.selectDevice(romId); + } + + /// The 1-Wire master for this slave device. + OneWireMaster & master() const { return selector.master(); } }; }