1-Wire API for .NET Version 4.00
|
Inherits com::dalsemi::onewire::container::OneWireContainer, and com::dalsemi::onewire::container::ClockContainer.
Public Member Functions | |
OneWireContainer04 () | |
Create an empty container that is not complete until after a call to setupContainer . | |
OneWireContainer04 (DSPortAdapter sourceAdapter, byte[] newAddress) | |
Create a container with the provided adapter instance and the address of the iButton or 1-Wire device. | |
OneWireContainer04 (DSPortAdapter sourceAdapter, long newAddress) | |
Create a container with the provided adapter instance and the address of the iButton or 1-Wire device. | |
OneWireContainer04 (DSPortAdapter sourceAdapter, String newAddress) | |
Create a container with the provided adapter instance and the address of the iButton or 1-Wire device. | |
String | getName () |
Get the Maxim Integrated Products part number of the iButton or 1-Wire Device as a string. | |
String | getAlternateNames () |
Get the alternate Maxim Integrated Products part numbers or names. | |
String | getDescription () |
Get a short description of the function of this iButton or 1-Wire Device type. | |
Enumeration | getMemoryBanks () |
Get an enumeration of memory bank instances that implement one or more of the following interfaces: MemoryBank, PagedMemoryBank, and OTPMemoryBank. | |
boolean | hasClockAlarm () |
Query to see if the clock has an alarm feature. | |
boolean | canDisableClock () |
Query to see if the clock can be disabled. | |
long | getClockResolution () |
Query to get the clock resolution in milliseconds. | |
byte[] | readDevice () throws OneWireIOException, OneWireException |
Retrieves the 1-Wire device sensor state. | |
void | writeDevice (byte[] state) throws OneWireIOException, OneWireException |
Writes the 1-Wire device sensor state that have been changed by 'set' methods. | |
long | getClock (byte[] state) |
Extracts the Real-Time clock value in milliseconds. | |
long | getClockAlarm (byte[] state) throws OneWireException |
Extracts the clock alarm value for the Real-Time clock. | |
boolean | isClockAlarming (byte[] state) |
Checks if the clock alarm flag has been set. | |
boolean | isClockAlarmEnabled (byte[] state) |
Checks if the clock alarm is enabled. | |
boolean | isClockRunning (byte[] state) |
Checks if the device's oscillator is enabled. | |
long | getIntervalTimer (byte[] state) |
Get the Interval Timer Value in milliseconds. | |
long | getCycleCounter (byte[] state) |
Get the power cycle count value. | |
long | getIntervalTimerAlarm (byte[] state) |
Get the Interval Timer Alarm Value. | |
long | getCycleCounterAlarm (byte[] state) |
Get the cycle count Alarm Value. | |
boolean | isIntervalTimerAlarming (byte[] state) |
Check if the Interval Timer Alarm flag has been set. | |
boolean | isCycleCounterAlarming (byte[] state) |
Check if the Cycle Alarm flag has been set. | |
boolean | isIntervalTimerAlarmEnabled (byte[] state) |
Check if the Interval Timer Alarm is enabled. | |
boolean | isCycleCounterAlarmEnabled (byte[] state) |
Check if the Cycle Alarm is enabled. | |
boolean | isClockWriteProtected (byte[] state) |
Check if the Real-Time clock/Alarm is write protected. | |
boolean | isIntervalTimerWriteProtected (byte[] state) |
Check if the Interval Timer and Interval Timer Alarm register is write protected. | |
boolean | isCycleCounterWriteProtected (byte[] state) |
Check if the Cycle Counter and Alarm is write protected. | |
boolean | canReadAfterExpire (byte[] state) |
Check if the device can be read after a write protected alarm has occured. | |
boolean | isIntervalTimerAutomatic (byte[] state) |
Checks if the Interval timer is automatic or manual. | |
boolean | isIntervalTimerStopped (byte[] state) |
Check if the Interval timer is stopped. | |
boolean | isAutomaticDelayLong (byte[] state) |
Checks if the automatic delay for the Inteval Timer and the Cycle counter is either 3.5ms (regular) or 123ms (long). | |
void | setClock (long time, byte[] state) |
Sets the Real-Time clock. | |
void | setClockAlarm (long time, byte[] state) throws OneWireException |
Sets the clock alarm. | |
void | setClockRunEnable (boolean runEnable, byte[] state) throws OneWireException |
Enables or disables the oscillator, turning the clock 'on' and 'off'. | |
void | setClockAlarmEnable (boolean alarmEnable, byte[] state) throws OneWireException |
Enables or disables the clock alarm. | |
void | setIntervalTimer (long time, byte[] state) |
Sets the Interval Timer. | |
void | setCycleCounter (long cycles, byte[] state) |
Sets power Cycle Counter. | |
void | setIntervalTimerAlarm (long time, byte[] state) |
Sets the Interval Timer Alarm. | |
void | setCycleCounterAlarm (long cycles, byte[] state) |
Sets the power Cycle Count Alarm. | |
void | writeProtectClock (byte[] state) |
Sets the write protect options for the Real-Time clock/Alarm. | |
void | writeProtectIntervalTimer (byte[] state) |
Sets the write protect options for Interval Timer and Interval Timer Alarm register. | |
void | writeProtectCycleCounter (byte[] state) |
Sets the write protect options for the Cycle Counter and Alarm register. | |
void | setReadAfterExpire (boolean readAfter, byte[] state) |
Sets the read state of the device after a write protected alarm has occured. | |
void | setIntervalTimerAutomatic (boolean autoTimer, byte[] state) |
Sets the Interval timer to automatic or manual mode. | |
void | setIntervalTimerRunState (boolean runState, byte[] state) |
Sets the Interval timer run/stop mode. | |
void | setAutomaticDelayLong (boolean delayLong, byte[] state) |
Sets the automatic delay for the Inteval Timer and the Cycle counter to either 123ms (long) or 3.5ms (regular). | |
void | setIntervalTimerAlarmEnable (boolean alarmEnable, byte[] state) |
Sets the Interval Timer Alarm enable. | |
void | setCycleCounterAlarmEnable (boolean alarmEnable, byte[] state) |
Sets the Cycle counter Alarm enable. | |
Static Protected Attributes | |
static final int | BITMAP_OFFSET = 32 |
Offset of BITMAP in array returned from read registers. | |
static final int | STATUS_OFFSET = 0 |
Offset of status register from read registers. | |
static final int | CONTROL_OFFSET = 1 |
Offset of control register from read registers. | |
static final int | RTC_OFFSET = 2 |
Offset of real-time-clock in array returned from read registers. | |
static final int | INTERVAL_OFFSET = 7 |
Offset of inverval-counter in array returned from read registers. | |
static final int | COUNTER_OFFSET = 12 |
Offset of counter in array returned from read registers. | |
static final int | RTC_ALARM_OFFSET = 16 |
Offset of real-time-clock-alarm in array returned from read registers. | |
static final int | INTERVAL_ALARM_OFFSET = 21 |
Offset of inverval-counter-alarm in array returned from read registers. | |
static final int | COUNTER_ALARM_OFFSET = 26 |
Offset of counter-alarm in array returned from read registers. |
1-Wire container for 512 byte memory iButton Plus Time, DS1994 and 1-Wire Chip, DS2404. This container encapsulates the functionality of the iButton family type 04 (hex)
This iButton is primarily used as a read/write portable memory device with real-time-clock, timer and experation features.
Appended to the clock page data retrieved with 'readDevice' are 4 bytes that represent a bitmap of changed bytes. These bytes are used in the 'writeDevice' method in conjuction with the 'set' methods to only write back the changed clock register bytes. The 'readDevice' method will clear any pending alarms.
WARNING: If write-protect alarm options have been set prior to a call to 'writeDevice' then the operation is non-reversable.
The memory can be accessed through the objects that are returned from the getMemoryBanks method.
The following is a list of the MemoryBank instances that are returned:
The clock methods can be organized into the following categories. Note that methods that are implemented for the ClockContainer interface are marked with (*):
See the usage examples in ClockContainer for basic clock operations. See the usage example in OneWireContainer to enumerate the MemoryBanks. See the usage examples in MemoryBank and PagedMemoryBank for bank specific operations.
http://pdfserv.maxim-ic.com/arpdf/DS1992-DS1994.pdf http://pdfserv.maxim-ic.com/arpdf/DS2404.pdf http://pdfserv.maxim-ic.com/arpdf/DS1427.pdf
Create an empty container that is not complete until after a call to setupContainer
.
This is one of the methods to construct a container. The others are through creating a OneWireContainer with parameters.
OneWireContainer04 | ( | DSPortAdapter | sourceAdapter, |
byte[] | newAddress | ||
) |
Create a container with the provided adapter instance and the address of the iButton or 1-Wire device.
This is one of the methods to construct a container. The other is through creating a OneWireContainer with NO parameters.
sourceAdapter | adapter instance used to communicate with this iButton |
newAddress | Address of this 1-Wire device |
OneWireContainer04 | ( | DSPortAdapter | sourceAdapter, |
long | newAddress | ||
) |
Create a container with the provided adapter instance and the address of the iButton or 1-Wire device.
This is one of the methods to construct a container. The other is through creating a OneWireContainer with NO parameters.
sourceAdapter | adapter instance used to communicate with this 1-Wire device |
newAddress | Address of this 1-Wire device |
OneWireContainer04 | ( | DSPortAdapter | sourceAdapter, |
String | newAddress | ||
) |
Create a container with the provided adapter instance and the address of the iButton or 1-Wire device.
This is one of the methods to construct a container. The other is through creating a OneWireContainer with NO parameters.
sourceAdapter | adapter instance used to communicate with this 1-Wire device |
newAddress | Address of this 1-Wire device |
boolean canDisableClock | ( | ) |
Query to see if the clock can be disabled.
Implements ClockContainer.
boolean canReadAfterExpire | ( | byte[] | state | ) |
Check if the device can be read after a write protected alarm has occured.
state | current state of the device returned from readDevice() |
true
if the device can be read after a write protected alarm has occuredString getAlternateNames | ( | ) |
Get the alternate Maxim Integrated Products part numbers or names.
A 'family' of 1-Wire Network devices may have more than one part number depending on packaging. There can also be nicknames such as 'Crypto iButton'.
Reimplemented from OneWireContainer.
long getClock | ( | byte[] | state | ) |
Extracts the Real-Time clock value in milliseconds.
state | current state of the device returned from readDevice() |
Implements ClockContainer.
long getClockAlarm | ( | byte[] | state | ) | throws OneWireException |
Extracts the clock alarm value for the Real-Time clock.
state | current state of the device returned from readDevice() |
OneWireException | if this device does not have clock alarms |
Implements ClockContainer.
long getClockResolution | ( | ) |
Query to get the clock resolution in milliseconds.
Implements ClockContainer.
long getCycleCounter | ( | byte[] | state | ) |
Get the power cycle count value.
This is the total number of power cycles that the DS1994 has seen since the counter was reset.
state | current state of the device returned from readDevice() |
long getCycleCounterAlarm | ( | byte[] | state | ) |
Get the cycle count Alarm Value.
state | current state of the device returned from readDevice() |
String getDescription | ( | ) |
Get a short description of the function of this iButton or 1-Wire Device type.
Reimplemented from OneWireContainer.
long getIntervalTimer | ( | byte[] | state | ) |
Get the Interval Timer Value in milliseconds.
state | current state of the device returned from readDevice() |
long getIntervalTimerAlarm | ( | byte[] | state | ) |
Get the Interval Timer Alarm Value.
state | current state of the device returned from readDevice() |
Enumeration getMemoryBanks | ( | ) |
Get an enumeration of memory bank instances that implement one or more of the following interfaces: MemoryBank, PagedMemoryBank, and OTPMemoryBank.
Enumeration
of memory banks Reimplemented from OneWireContainer.
String getName | ( | ) |
Get the Maxim Integrated Products part number of the iButton or 1-Wire Device as a string.
For example 'DS1992'.
Reimplemented from OneWireContainer.
boolean hasClockAlarm | ( | ) |
Query to see if the clock has an alarm feature.
Implements ClockContainer.
boolean isAutomaticDelayLong | ( | byte[] | state | ) |
Checks if the automatic delay for the Inteval Timer and the Cycle counter is either 3.5ms (regular) or 123ms (long).
state | current state of the device returned from readDevice() |
true
if the automatic interval/cycle counter delay is in the long (123ms) mode, else it is 3.5msboolean isClockAlarmEnabled | ( | byte[] | state | ) |
Checks if the clock alarm is enabled.
state | current state of the device returned from readDevice() |
Implements ClockContainer.
boolean isClockAlarming | ( | byte[] | state | ) |
Checks if the clock alarm flag has been set.
This will occur when the value of the Real-Time clock equals the value of the clock alarm.
state | current state of the device returned from readDevice() |
Implements ClockContainer.
boolean isClockRunning | ( | byte[] | state | ) |
Checks if the device's oscillator is enabled.
The clock will not increment if the clock oscillator is not enabled.
state | current state of the device returned from readDevice() |
Implements ClockContainer.
boolean isClockWriteProtected | ( | byte[] | state | ) |
Check if the Real-Time clock/Alarm is write protected.
state | current state of the device returned from readDevice() |
true
if real time clock/alarm is write protectedboolean isCycleCounterAlarmEnabled | ( | byte[] | state | ) |
Check if the Cycle Alarm is enabled.
state | current state of the device returned from readDevice() |
true
true if cycle counter alarm is enabledboolean isCycleCounterAlarming | ( | byte[] | state | ) |
Check if the Cycle Alarm flag has been set.
state | current state of the device returned from readDevice() |
true
if cycle counter is alarmingboolean isCycleCounterWriteProtected | ( | byte[] | state | ) |
Check if the Cycle Counter and Alarm is write protected.
state | current state of the device returned from readDevice() |
true
if cycle counter/alarm is write protectedboolean isIntervalTimerAlarmEnabled | ( | byte[] | state | ) |
Check if the Interval Timer Alarm is enabled.
state | current state of the device returned from readDevice() |
true
if interval timer alarm is enabledboolean isIntervalTimerAlarming | ( | byte[] | state | ) |
Check if the Interval Timer Alarm flag has been set.
state | current state of the device returned from readDevice() |
true
if interval timer is alarmingboolean isIntervalTimerAutomatic | ( | byte[] | state | ) |
Checks if the Interval timer is automatic or manual.
If it is automatic then the interval counter will increment while the devices I/O line is high after the delay select period has elapsed (either 3.5 or 123 ms, see the isAutomaticDelayLong() method).
state | current state of the device returned from readDevice() |
true
if the interval timer is set to automatic modeboolean isIntervalTimerStopped | ( | byte[] | state | ) |
Check if the Interval timer is stopped.
This only has meaning if the interval timer is in manual mode (not isIntervalTimerAutomatic
).
state | current state of the device returned from readDevice() |
true
if the interval timer is stoppedboolean isIntervalTimerWriteProtected | ( | byte[] | state | ) |
Check if the Interval Timer and Interval Timer Alarm register is write protected.
state | current state of the device returned from readDevice() |
true
if interval timer and interval timer alarm is write protectedbyte [] readDevice | ( | ) | throws OneWireIOException, OneWireException |
Retrieves the 1-Wire device sensor state.
This state is returned as a byte array. Pass this byte array to the 'get' and 'set' methods. If the device state needs to be changed then call the 'writeDevice' to finalize the changes.
OneWireIOException | on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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 |
Implements OneWireSensor.
void setAutomaticDelayLong | ( | boolean | delayLong, |
byte[] | state | ||
) |
Sets the automatic delay for the Inteval Timer and the Cycle counter to either 123ms (long) or 3.5ms (regular).
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
delayLong | true to set the interval timer to cycle counter to increment after 123ms or false for 3.5ms |
state | current state of the device returned from readDevice() |
void setClock | ( | long | time, |
byte[] | state | ||
) |
Sets the Real-Time clock.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
time | new value for the Real-Time clock, in milliseconds since January 1, 1970 |
state | current state of the device returned from readDevice() |
Implements ClockContainer.
void setClockAlarm | ( | long | time, |
byte[] | state | ||
) | throws OneWireException |
Sets the clock alarm.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
. Also note that not all clock devices have alarms. Check to see if this device has alarms first by calling the hasClockAlarm()
method.
time | - new value for the Real-Time clock alarm, in milliseconds since January 1, 1970 |
state | current state of the device returned from readDevice() |
OneWireException | if this device does not have clock alarms |
Implements ClockContainer.
void setClockAlarmEnable | ( | boolean | alarmEnable, |
byte[] | state | ||
) | throws OneWireException |
Enables or disables the clock alarm.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
. Also note that not all clock devices have alarms. Check to see if this device has alarms first by calling the hasClockAlarm()
method.
alarmEnable | true to enable the clock alarm |
state | current state of the device returned from readDevice() |
OneWireException | if this device does not have clock alarms |
Implements ClockContainer.
void setClockRunEnable | ( | boolean | runEnable, |
byte[] | state | ||
) | throws OneWireException |
Enables or disables the oscillator, turning the clock 'on' and 'off'.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
. Also note that not all clock devices can disable their oscillators. Check to see if this device can disable its oscillator first by calling the canDisableClock()
method.
runEnable | true to enable the clock oscillator |
state | current state of the device returned from readDevice() |
OneWireException | if the clock oscillator cannot be disabled |
Implements ClockContainer.
void setCycleCounter | ( | long | cycles, |
byte[] | state | ||
) |
Sets power Cycle Counter.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
cycles | initialize cycle counter value |
state | current state of the device returned from readDevice() |
void setCycleCounterAlarm | ( | long | cycles, |
byte[] | state | ||
) |
Sets the power Cycle Count Alarm.
This counter holds the number of times the DS1994 must experience power cycles before it generates an alarm. The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
cycles | power Cycle Count alarm |
state | current state of the device returned from readDevice() |
void setCycleCounterAlarmEnable | ( | boolean | alarmEnable, |
byte[] | state | ||
) |
Sets the Cycle counter Alarm enable.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
alarmEnable | true to enable the cycle counter alarm |
state | current state of the device returned from readDevice() |
void setIntervalTimer | ( | long | time, |
byte[] | state | ||
) |
Sets the Interval Timer.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
time | interval in milliseconds to set (truncated to 1/256th of second) |
state | current state of the device returned from readDevice() |
void setIntervalTimerAlarm | ( | long | time, |
byte[] | state | ||
) |
Sets the Interval Timer Alarm.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
time | in milliseconds to set the inverval timer |
state | current state of the device returned from readDevice() |
void setIntervalTimerAlarmEnable | ( | boolean | alarmEnable, |
byte[] | state | ||
) |
Sets the Interval Timer Alarm enable.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
alarmEnable | true to enable the interval timer alarm |
state | current state of the device returned from readDevice() |
void setIntervalTimerAutomatic | ( | boolean | autoTimer, |
byte[] | state | ||
) |
Sets the Interval timer to automatic or manual mode.
When in automatic mode, the interval counter will increment while the devices I/O line is high after the delay select period has elapsed (either 3.5 or 123 ms, see the isAutomaticDelayLong()
method). The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
autoTimer | true for the interval timer to operate in automatic mode |
state | current state of the device returned from readDevice() |
void setIntervalTimerRunState | ( | boolean | runState, |
byte[] | state | ||
) |
Sets the Interval timer run/stop mode.
This only has meaning if the interval timer is in manual mode (not isIntervalTimerAutomatic()
). The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
runState | true to set the interval timer to run |
state | current state of the device returned from readDevice() |
void setReadAfterExpire | ( | boolean | readAfter, |
byte[] | state | ||
) |
Sets the read state of the device after a write protected alarm has occured.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
readAfter | true to read device after it expires from a write protected alarm event |
state | current state of the device returned from readDevice() |
void writeDevice | ( | byte[] | state | ) | throws OneWireIOException, OneWireException |
Writes the 1-Wire device sensor state that have been changed by 'set' methods.
Only the state registers that changed are updated. This is done by referencing a field information appended to the state data.
state | 1-Wire device sensor state |
OneWireIOException | on a 1-Wire communication error such as reading an incorrect CRC from a 1-Wire device. 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 |
Implements OneWireSensor.
void writeProtectClock | ( | byte[] | state | ) |
Sets the write protect options for the Real-Time clock/Alarm.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
WARNING: after calling this method and then writeDevice
the device will be permanently write protected.
state | current state of the device returned from readDevice() |
void writeProtectCycleCounter | ( | byte[] | state | ) |
Sets the write protect options for the Cycle Counter and Alarm register.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
WARNING: after calling this method and then writeDevice
the device will be permanently write protected.
state | current state of the device returned from readDevice() |
void writeProtectIntervalTimer | ( | byte[] | state | ) |
Sets the write protect options for Interval Timer and Interval Timer Alarm register.
The method writeDevice(byte[])
must be called to finalize changes to the device. Note that multiple 'set' methods can be called before one call to writeDevice(byte[])
.
WARNING: after calling this method and then writeDevice
the device will be permanently write protected.
state | current state of the device returned from readDevice() |