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.

RomIterator.cpp

Committer:
IanBenzMaxim
Date:
2016-05-16
Revision:
77:529edb329ee0
Parent:
RomCommands.cpp@ 76:84e6c4994e29
Child:
78:0cbbac7f2016

File content as of revision 77:529edb329ee0:

#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;
}