MemoryBankSBM Class Reference

Inherits com::dalsemi::onewire::container::MemoryBank.

List of all members.


Detailed Description

Memory bank class for the DS2438.

Version:
0.00, 30 Oct 2001
Author:
DS

Public Member Functions

 MemoryBankSBM (OneWireContainer ibutton)
 Memory bank contstuctor.
String getBankDescription ()
 Query to see get a string description of the current memory bank.
boolean isGeneralPurposeMemory ()
 Query to see if the current memory bank is general purpose user memory.
boolean isReadWrite ()
 Query to see if current memory bank is read/write.
boolean isWriteOnce ()
 Query to see if current memory bank is write write once such as with EPROM technology.
boolean isReadOnly ()
 Query to see if current memory bank is read only.
boolean isNonVolatile ()
 Query to see if current memory bank non-volatile.
boolean needsProgramPulse ()
 Query to see if current memory bank pages need the adapter to have a 'ProgramPulse' in order to write to the memory.
boolean needsPowerDelivery ()
 Query to see if current memory bank pages need the adapter to have a 'PowerDelivery' feature in order to write to the memory.
int getStartPhysicalAddress ()
 Query to get the starting physical address of this bank.
int getSize ()
 Query to get the memory bank size in bytes.
void setWriteVerification (boolean doReadVerf)
 Set the write verification for the 'write()' method.
void read (int startAddr, boolean readContinue, byte[] readBuf, int offset, int len) throws OneWireIOException, OneWireException
 Read memory in the current bank with no CRC checking (device or data).
void write (int startAddr, byte[] writeBuf, int offset, int len) throws OneWireIOException, OneWireException
 Write memory in the current bank.
void checkSpeed () throws OneWireIOException, OneWireException
 Check the device speed if has not been done before or if an error was detected.
void forceVerify ()
 Set the flag to indicate the next 'checkSpeed()' will force a speed set and verify 'doSpeed()'.

Protected Member Functions

byte[] readRawPage (int page) throws OneWireIOException, OneWireException
 Reads the specified 8 byte page and returns the data in an array.
void writeRawPage (int page, byte[] source, int offset) throws OneWireIOException, OneWireException
 Writes a page of memory to this device.

Protected Attributes

int startPhysicalAddress
 Starting physical address in memory bank.
int size
 Size of memory bank in bytes.
String bankDescription
 Memory bank descriptions.
boolean generalPurposeMemory
 Memory bank usage flags.
boolean readWrite
 Flag if memory bank is read/write.
boolean writeOnce
 Flag if memory bank is write once (EPROM).
boolean readOnly
 Flag if memory bank is read only.
boolean nonVolatile
 Flag if memory bank is non volatile (will not erase when power removed).
boolean powerDelivery
 Flag if memory bank needs power delivery to write.
OneWireContainer ib
 Reference to the OneWireContainer this bank resides on.
byte[] ffBlock
 block of 0xFF's used for faster read pre-fill of 1-Wire blocks
boolean writeVerification
 Flag if read back verification is enabled in 'write()'.
boolean doSetSpeed
 Flag to indicate that speed needs to be set.

Constructor & Destructor Documentation

MemoryBankSBM ( OneWireContainer  ibutton  ) 

Memory bank contstuctor.

Requires reference to the OneWireContainer this memory bank resides on.


Member Function Documentation

String getBankDescription (  ) 

Query to see get a string description of the current memory bank.

Returns:
String containing the memory bank description

Implements MemoryBank.

boolean isGeneralPurposeMemory (  ) 

Query to see if the current memory bank is general purpose user memory.

If it is NOT then it is Memory-Mapped and writing values to this memory will affect the behavior of the 1-Wire device.

Returns:
'true' if current memory bank is general purpose

Implements MemoryBank.

boolean isReadWrite (  ) 

Query to see if current memory bank is read/write.

Returns:
'true' if current memory bank is read/write

Implements MemoryBank.

boolean isWriteOnce (  ) 

Query to see if current memory bank is write write once such as with EPROM technology.

Returns:
'true' if current memory bank can only be written once

Implements MemoryBank.

boolean isReadOnly (  ) 

Query to see if current memory bank is read only.

Returns:
'true' if current memory bank can only be read

Implements MemoryBank.

boolean isNonVolatile (  ) 

Query to see if current memory bank non-volatile.

Memory is non-volatile if it retains its contents even when removed from the 1-Wire network.

Returns:
'true' if current memory bank non volatile.

Implements MemoryBank.

boolean needsProgramPulse (  ) 

Query to see if current memory bank pages need the adapter to have a 'ProgramPulse' in order to write to the memory.

Returns:
'true' if writing to the current memory bank pages requires a 'ProgramPulse'.

Implements MemoryBank.

boolean needsPowerDelivery (  ) 

Query to see if current memory bank pages need the adapter to have a 'PowerDelivery' feature in order to write to the memory.

Returns:
'true' if writing to the current memory bank pages requires 'PowerDelivery'.

Implements MemoryBank.

int getStartPhysicalAddress (  ) 

Query to get the starting physical address of this bank.

Physical banks are sometimes sub-divided into logical banks due to changes in attributes.

Returns:
physical starting address of this logical bank.

Implements MemoryBank.

int getSize (  ) 

Query to get the memory bank size in bytes.

Returns:
memory bank size in bytes.

Implements MemoryBank.

void setWriteVerification ( boolean  doReadVerf  ) 

Set the write verification for the 'write()' method.

Parameters:
doReadVerf true (default) verify write in 'write' false, don't verify write (used on Write-Once bit manipulation)

Implements MemoryBank.

void read ( int  startAddr,
boolean  readContinue,
byte[]  readBuf,
int  offset,
int  len 
) throws OneWireIOException, OneWireException

Read memory in the current bank with no CRC checking (device or data).

The resulting data from this API may or may not be what is on the 1-Wire device. It is recommends that the data contain some kind of checking (CRC) like in the readPagePacket() method or have the 1-Wire device provide the CRC as in readPageCRC(). readPageCRC() however is not supported on all memory types, see 'hasPageAutoCRC()'. If neither is an option then this method could be called more then once to at least verify that the same thing is read consistantly.

Parameters:
startAddr starting physical address
readContinue if 'true' then device read is continued without re-selecting. This can only be used if the new read() continious where the last one led off and it is inside a 'beginExclusive/endExclusive' block.
readBuf byte array to place read data into
offset offset into readBuf to place data
len length in bytes to read
Exceptions:
OneWireIOException 
OneWireException 

Implements MemoryBank.

void write ( int  startAddr,
byte[]  writeBuf,
int  offset,
int  len 
) throws OneWireIOException, OneWireException

Write memory in the current bank.

It is recommended that when writing data that some structure in the data is created to provide error free reading back with read(). Or the method 'writePagePacket()' could be used which automatically wraps the data in a length and CRC.

When using on Write-Once devices care must be taken to write into into empty space. If write() is used to write over an unlocked page on a Write-Once device it will fail. If write verification is turned off with the method 'setWriteVerification(false)' then the result will be an 'AND' of the existing data and the new data.

Parameters:
startAddr starting address
writeBuf byte array containing data to write
offset offset into writeBuf to get data
len length in bytes to write
Exceptions:
OneWireIOException 
OneWireException 

Implements MemoryBank.

byte [] readRawPage ( int  page  )  throws OneWireIOException, OneWireException [protected]

Reads the specified 8 byte page and returns the data in an array.

Parameters:
page the page number to read
Returns:
eight byte array that make up the page
Exceptions:
OneWireIOException Error reading data
OneWireException Could not find part
IllegalArgumentException Bad parameters passed

void writeRawPage ( int  page,
byte[]  source,
int  offset 
) throws OneWireIOException, OneWireException [protected]

Writes a page of memory to this device.

Pages 3-6 are always available for user storage and page 7 is available if the CA bit is set to 0 (false) with setFlag().

Parameters:
page the page number
source data to be written to page
offset offset with page to begin writting
Returns:
'true' if the write was successfull
Exceptions:
OneWireIOException Error reading data
OneWireException Could not find part
IllegalArgumentException Bad parameters passed

void checkSpeed (  )  throws OneWireIOException, OneWireException

Check the device speed if has not been done before or if an error was detected.

Exceptions:
OneWireIOException 
OneWireException 


Member Data Documentation

int startPhysicalAddress [protected]

Starting physical address in memory bank.

Needed for different types of memory in the same logical memory bank. This can be used to seperate them into two virtual memory banks. Example: DS2406 status page has mixed EPROM and Volatile RAM.


The documentation for this class was generated from the following file:

Generated on Thu Aug 28 15:42:33 2008 for 1-Wire API for .NET by  doxygen 1.5.6