public interface GenericDevice extends Peripheral<GenericDevice>
GenericDevice
interface defines methods for setting and getting peripheral device-specific configuration
and access (I/O) controls as well as registering event listeners.
An generic device may be identified by the numerical ID and by the name (if any defined) that correspond to its
registered configuration. An GenericDevice
instance can be opened by a call to one of the
PeripheralManager.open(id,...)
methods using its ID or by
a call to one of the
PeripheralManager.open(name,...)
methods using its name.
An application can set and get configuration and access (I/O) controls. A control is identified by a
GenericDeviceControl
instance and can be set or gotten using the
setControl(com.oracle.deviceaccess.generic.GenericDeviceControl, java.lang.Object)
and
getControl(com.oracle.deviceaccess.generic.GenericDeviceControl)
methods. Controls can be used to configured
a peripheral device a well as performing basic input/output operations. The list of controls supported by a
peripheral device is peripheral-device-specific.
An application can also register an GenericEventListener
instance to monitor native events of the designated
type fired by the peripheral device. To register a GenericEventListener
instance, the application must call
the setEventListener(int, GenericEventListener)
method. The registered listener can later on be removed by
calling the same method with a null
listener parameter. Asynchronous notification may not be supported by all
devices. An attempt to set a listener on a device which does not supports it will result in an
UnsupportedOperationException
being thrown.
A platform implementer may allow through this interface access and control of peripheral devices which do not require
read and write operations and for which there exist no other more specific API such as
GPIOPin
or GPIOPort
.BIG_ENDIAN, LITTLE_ENDIAN, MIXED_ENDIAN
Modifier and Type | Method and Description |
---|---|
<T> T |
getControl(GenericDeviceControl<T> control)
Gets the value of the specified control.
|
<T> void |
setControl(GenericDeviceControl<T> control,
T value)
Sets the value of the specified control.
|
void |
setEventListener(int eventId,
GenericEventListener listener)
Registers a
GenericEventListener instance to monitor native events of the designated type fired by the
peripheral device associated to this GenericDevice object. |
close, getDescriptor, isOpen, tryLock, unlock
<T> T getControl(GenericDeviceControl<T> control) throws java.io.IOException, UnavailablePeripheralException, ClosedPeripheralException
T
- the type of the control's value.control
- the control to get.java.lang.IllegalArgumentException
- if control
is not recognized or invalid.java.io.IOException
- if some other I/O error occurs.UnavailablePeripheralException
- if this peripheral is not currently available - such as it is locked by another application.ClosedPeripheralException
- if the peripheral has been closed.<T> void setControl(GenericDeviceControl<T> control, T value) throws java.io.IOException, UnavailablePeripheralException, ClosedPeripheralException
T
- the type of the control's value.control
- the control to set.value
- the value to set.java.lang.IllegalArgumentException
- if control
is not recognized or invalid.java.io.IOException
- if some other I/O error occurs.UnavailablePeripheralException
- if this peripheral is not currently available - such as it is locked by another application.ClosedPeripheralException
- if the peripheral has been closed.void setEventListener(int eventId, GenericEventListener listener) throws java.io.IOException, UnavailablePeripheralException, ClosedPeripheralException
GenericEventListener
instance to monitor native events of the designated type fired by the
peripheral device associated to this GenericDevice object. While the listener can be triggered by
hardware interrupts, there are no real-time guarantees of when the listener will be called.
A list of event type IDs is defined in GenericEvent
. This list can be extended with peripheral-specific
IDs.
If listener
is null
then listener previously registered for the specified event type will be
removed.
Only one listener can be registered at a particular time for a particular event type.eventId
- ID of the native event to listen to.listener
- the GenericEventListener
instance to be notified upon occurrence of the designated event.java.io.IOException
- if some other I/O error occurs.java.lang.IllegalArgumentException
- if eventId
does not correspond to any supported event.java.lang.UnsupportedOperationException
- if this GenericDevice object does not support asynchronous event notification.java.lang.IllegalStateException
- if listener
is not null
and a listener is already registered for the specified event
type.UnavailablePeripheralException
- if this peripheral is not currently available - such as it is locked by another application.ClosedPeripheralException
- if the peripheral has been closed.Copyright © 2012, 2013, Oracle and/or its affiliates. All rights reserved.
Legal Notices