1-Wire® library for mbed. Complete 1-Wire library that supports our silicon masters along with a bit-bang master on the MAX32600MBED platform with one common interface for mbed. Slave support has also been included and more slaves will be added as time permits.

Dependents:   MAXREFDES131_Qt_Demo MAX32630FTHR_iButton_uSD_Logger MAX32630FTHR_DS18B20_uSD_Logger MAXREFDES130_131_Demo ... more

Superseded by MaximInterface.

Revision:
77:529edb329ee0
Parent:
76:84e6c4994e29
Child:
78:0cbbac7f2016
diff -r 84e6c4994e29 -r 529edb329ee0 RomIterator.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RomIterator.cpp	Mon May 16 10:36:30 2016 -0500
@@ -0,0 +1,55 @@
+#include "RomIterator.h"
+
+using namespace OneWire;
+
+bool ForwardSearchRomIterator::lastDevice() const
+{
+    return searchState.last_device_flag;
+}
+
+OneWireMaster::CmdResult ForwardSearchRomIterator::selectFirstDevice()
+{
+    return master().OWFirst(searchState);
+}
+
+OneWireMaster::CmdResult ForwardSearchRomIterator::selectNextDevice()
+{
+    return master().OWNext(searchState);
+}
+
+OneWireMaster::CmdResult ForwardSearchRomIterator::reselectCurrentDevice()
+{
+    return master().OWResume();
+}
+
+OneWireMaster::CmdResult ForwardSearchRomIterator::selectFirstDeviceInFamily(uint8_t familyCode)
+{
+    searchState.findFamily(familyCode);
+    return master().OWNext(searchState);
+}
+
+OneWireMaster::CmdResult ForwardSearchRomIterator::selectNextFamilyDevice()
+{
+    searchState.skipCurrentFamily();
+    return master().OWNext(searchState);
+}
+
+OneWireMaster::CmdResult SingledropRomIterator::selectDevice(const RomId & romId)
+{
+    return selectDevice();
+}
+
+OneWireMaster::CmdResult MultidropRomIterator::selectDevice(const RomId & romId)
+{
+    OneWireMaster::CmdResult result;
+    if (romId == lastRom)
+    {
+        result = master().OWResume();
+    }
+    else
+    {
+        result = master().OWMatchRom(romId);
+        lastRom = romId;
+    }
+    return result;
+}