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:

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