Dallas Semiconductor 1-Wire API 1.00 Alpha: Interface OTPMemoryBank

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.dalsemi.onewire.container
Interface OTPMemoryBank

All Superinterfaces:
  MemoryBank, PagedMemoryBank

public interface OTPMemoryBank
extends PagedMemoryBank

One-Time-Programmable (OTP) Memory bank interface for iButtons (or 1-Wire devices) with OTP features. This interface extents the base functionality of the super-interfaces `MemoryBank` and `PagedMemoryBank` by providing One-Time-Programmable services.

The OTPMemoryBank methods can be organized into the following categories:

- Information
  - `canRedirectPage`
  - `canLockPage`
  - `canLockRedirectPage`
- Read Status
  - `getRedirectedPage`
  - `isPageLocked`
  - `isRedirectPageLocked`
- Write Status
  - `redirectPage`
  - `lockPage`
  - `lockRedirectPage`

### Usage

  #### Example 1

  Read the OTP status of page 0 in the OTPMemoryBank instance 'otp':

        if (otp.canRedirectPage())
        {
           int new_page = getRedirectedPage(0);
           if (new_page != 0)
              System.out.println("Page 0 is redirected to " + new_page);
        }

        if (otp.canLockPage())
        {
           if (otp.isPageLocked(0))
              System.out.println("Page 0 is locked");
        }

        if (otp.canLockRedirectPage())
        {
           if (otp.isRedirectPageLocked(0))
              System.out.println("Page 0 redirection is locked");
        }

  #### Example 1

  Lock all of the pages in the OTPMemoryBank instance 'otp':

        if (otp.canLockPage())
        {
           // loop to lock each page
           for (int pg = 0; pg < otp.getNumberPages(); pg++)
           {
              otp.lockPage(pg);
           }
        }
        else
           System.out.println("OTPMemoryBank does not support page locking");

Version:
  0.01, 11 Dec 2000
See Also:
  `MemoryBank`, `PagedMemoryBank`, `OneWireContainer09`, `OneWireContainer0B`, `OneWireContainer0F`, `OneWireContainer12`, `OneWireContainer13`

Method Summary
`boolean` | `canLockPage()` Checks to see if this memory bank has pages that can be locked.
`boolean` | `canLockRedirectPage()` Checks to see if this memory bank has pages that can be locked from being redirected.
`boolean` | `canRedirectPage()` Checks to see if this memory bank has pages that can be redirected to a new page.
`int` | `getRedirectedPage(int page)` Gets the page redirection of the specified page.
`boolean` | `isPageLocked(int page)` Checks to see if the specified page is locked.
`int` | `isPageRedirected(int page)` Deprecated. As of 1-Wire API 0.01, replaced by `getRedirectedPage(int)`
`boolean` | `isRedirectPageLocked(int page)` Checks to see if the specified page has redirection locked.
`void` | `lockPage(int page)` Locks the specifed page in this memory bank.
`void` | `lockRedirectPage(int page)` Locks the redirection of the specifed page.
`void` | `redirectPage(int page, int newPage)` Redirects the specifed page to a new page.

Methods inherited from interface com.dalsemi.onewire.container.PagedMemoryBank
`getExtraInfoDescription, getExtraInfoLength, getMaxPacketDataLength, getNumberPages, getPageLength, hasExtraInfo, hasPageAutoCRC, haveExtraInfo, readPage, readPage, readPageCRC, readPageCRC, readPagePacket, readPagePacket, writePagePacket`

Methods inherited from interface com.dalsemi.onewire.container.MemoryBank
`getBankDescription, getSize, getStartPhysicalAddress, isGeneralPurposeMemory, isNonVolatile, isReadOnly, isReadWrite, isWriteOnce, needsPowerDelivery, needsProgramPulse, read, setWriteVerification, write`

Method Detail

### canRedirectPage

    public boolean canRedirectPage()

  Checks to see if this memory bank has pages that can be redirected to a new page. This is used in Write-Once memory to provide a means to update.
  Returns:
    `true` if this memory bank pages can be redirected to a new page
  See Also:
    `redirectPage`, `getRedirectedPage`

### canLockPage

    public boolean canLockPage()

  Checks to see if this memory bank has pages that can be locked. A locked page would prevent any changes to it's contents.
  Returns:
    `true` if this memory bank has pages that can be locked
  See Also:
    `lockPage`, `isPageLocked`

### canLockRedirectPage

    public boolean canLockRedirectPage()

  Checks to see if this memory bank has pages that can be locked from being redirected. This would prevent a Write-Once memory from being updated.
  Returns:
    `true` if this memory bank has pages that can be locked from being redirected to a new page
  See Also:
    `lockRedirectPage`, `isRedirectPageLocked`

### lockPage

    public void lockPage(int page)
                  throws OneWireIOException,
                         OneWireException

  Locks the specifed page in this memory bank. Not supported by all devices.
  Parameters:
    `page` - number of page to lock
  Throws:
    `OneWireIOException` - on a 1-Wire communication error such as no device present or a read back verification fails. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'.
    `OneWireException` - on a communication or setup error with the 1-Wire adapter. It will also be thrown if the device needs 'program' voltage and the adapter used by this device does not support it.
  See Also:
    `isPageLocked`, `canLockPage`, `DSPortAdapter.canProgram()`

### isPageLocked

    public boolean isPageLocked(int page)
                         throws OneWireIOException,
                                OneWireException

  Checks to see if the specified page is locked.
  Parameters:
    `page` - page to check
  Returns:
    `true` if page is locked
  Throws:
    `OneWireIOException` - on a 1-Wire communication error such as no device present or a CRC read from the device is incorrect. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'.
    `OneWireException` - on a communication or setup error with the 1-Wire adapter.
  See Also:
    `lockPage`, `canLockPage`

### redirectPage

    public void redirectPage(int page,
                             int newPage)
                      throws OneWireIOException,
                             OneWireException

  Redirects the specifed page to a new page. Not supported by all devices.
  Parameters:
    `page` - number of page to redirect
    `newPage` - new page number to redirect to
  Throws:
    `OneWireIOException` - on a 1-Wire communication error such as no device present or a CRC read from the device is incorrect. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'.
    `OneWireException` - on a communication or setup error with the 1-Wire adapter. It will also be thrown if the device needs 'program' voltage and the adapter used by this device does not support it.
  See Also:
    `canRedirectPage`, `getRedirectedPage`, `DSPortAdapter.canProgram()`

### isPageRedirected

    public int isPageRedirected(int page)
                         throws OneWireIOException,
                                OneWireException

  Deprecated. As of 1-Wire API 0.01, replaced by `getRedirectedPage(int)`

  Checks to see if the specified page is redirected. Not supported by all devices.
  Parameters:
    `page` - page to check for redirection
  Returns:
    the new page number or 0 if not redirected
  Throws:
    `OneWireIOException` - on a 1-Wire communication error such as no device present or a CRC read from the device is incorrect. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'.
    `OneWireException` - on a communication or setup error with the 1-Wire adapter.
  See Also:
    `canRedirectPage`, `redirectPage`

### getRedirectedPage

    public int getRedirectedPage(int page)
                          throws OneWireIOException,
                                 OneWireException

  Gets the page redirection of the specified page. Not supported by all devices.
  Parameters:
    `page` - page to check for redirection
  Returns:
    the new page number or 0 if not redirected
  Throws:
    `OneWireIOException` - on a 1-Wire communication error such as no device present or a CRC read from the device is incorrect. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'.
    `OneWireException` - on a communication or setup error with the 1-Wire adapter.
  Since:
    1-Wire API 0.01
  See Also:
    `canRedirectPage`, `redirectPage`

### lockRedirectPage

    public void lockRedirectPage(int page)
                          throws OneWireIOException,
                                 OneWireException

  Locks the redirection of the specifed page. Not supported by all devices.
  Parameters:
    `page` - page to redirect
  Throws:
    `OneWireIOException` - on a 1-Wire communication error such as no device present or a CRC read from the device is incorrect. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'.
    `OneWireException` - on a communication or setup error with the 1-Wire adapter. It will also be thrown if the device needs 'program' voltage and the adapter used by this device does not support it.
  See Also:
    `canLockRedirectPage`, `isRedirectPageLocked`, `DSPortAdapter.canProgram()`

### isRedirectPageLocked

    public boolean isRedirectPageLocked(int page)
                                 throws OneWireIOException,
                                        OneWireException

  Checks to see if the specified page has redirection locked. Not supported by all devices.
  Parameters:
    `page` - page to check for locked redirection
  Returns:
    `true` if redirection is locked for this page
  Throws:
    `OneWireIOException` - on a 1-Wire communication error such as no device present or a CRC read from the device is incorrect. This could be caused by a physical interruption in the 1-Wire Network due to shorts or a newly arriving 1-Wire device issuing a 'presence pulse'.
    `OneWireException` - on a communication or setup error with the 1-Wire adapter.
  See Also:
    `canLockRedirectPage`, `lockRedirectPage`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD