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. |
MemoryBankSBM | ( | OneWireContainer | ibutton | ) |
Memory bank contstuctor.
Requires reference to the OneWireContainer this memory bank resides on.
String getBankDescription | ( | ) |
Query to see get a string description of the current memory bank.
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.
Implements MemoryBank.
boolean isReadWrite | ( | ) |
Query to see 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.
Implements MemoryBank.
boolean isReadOnly | ( | ) |
Query to see if current memory bank is read only.
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.
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.
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.
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.
Implements MemoryBank.
int getSize | ( | ) |
Query to get the memory bank size in bytes.
Implements MemoryBank.
void setWriteVerification | ( | boolean | doReadVerf | ) |
Set the write verification for the 'write()' method.
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.
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 |
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.
startAddr | starting address | |
writeBuf | byte array containing data to write | |
offset | offset into writeBuf to get data | |
len | length in bytes to write |
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.
page | the page number to read |
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()
.
page | the page number | |
source | data to be written to page | |
offset | offset with page to begin writting |
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.
OneWireIOException | ||
OneWireException |
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.