# DeviceManager The **DeviceManager** class manages the connection, power, and settings of the AsReader device. --- ## getInstance Retrieves the instance of **DeviceManager**. ```java public static DeviceManager getInstance() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - `DeviceManager` - Instance of the `DeviceManager` class ``` ### Sample Code ```java DeviceManager deviceManager = DeviceManager.getInstance(); ``` --- ## setCallback Sets the **DeviceManagerCallback** callback. ```java public void setCallback(DeviceManagerCallback callback) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Name - Type - Description * - `callback` - `DeviceManagerCallback` - Instance of the [DeviceManagerCallback](DeviceManagerCallback.md) class ``` ### Sample Code ```java deviceManager.setCallback(this); ``` --- ## isConnected Retrieves the connection status. ```java public boolean isConnected() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - `boolean` - true: Connected / false: Not connected ``` ### Sample Code ```java boolean isConnected = deviceManager.isConnected(); ``` --- ## isPowerOn Retrieves the power status. ```java public boolean isPowerOn() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - `boolean` - true: Power on / false: Power off ``` ### Sample Code ```java boolean isPowerOn = deviceManager.isPowerOn(); ``` --- ## isOpen Retrieves the status of the USB port. ```java public boolean isOpen() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - `boolean` - true: Open / false: Closed ``` ### Sample Code ```java boolean isOpen = deviceManager.isOpen(); ``` --- ## initialize Initializes the **DeviceManager**. ```java public void initialize(Context context) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Name - Type - Description * - `context` - `Context` - Application or Activity context ``` ### Sample Code ```java DeviceManager.getInstance().initialize(context); ``` --- ## setPower Turns the power on or off. ```java public void setPower(boolean power) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Name - Type - Description * - `power` - `boolean` - true: Power on / false: Power off ``` ### Sample Code ```java deviceManager.setPower(true); ``` --- ## setPowerWithOption Configures the AsReader power and its features. After executing this method, battery information is received via the [onCompletedPreparation](DeviceManagerCallback.md#oncompletedpreparation) callback. ```java public void setPowerWithOption( boolean power, boolean beep, boolean vib, boolean led, boolean aimer, boolean powerOnBeep ) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Name - Type - Description * - `power` - `boolean` - true: Power on * - `beep` - `boolean` - true: Beep on / false: Beep off * - `vib` - `boolean` - true: Vibration on / false: Vibration off * - `led` - `boolean` - true: LED on / false: LED off * - `aimer` - `boolean` - true: Aimer on / false: Aimer off * - `powerOnBeep` - `boolean` - true: Power-on beep on / false: Power-on beep off ``` ### Sample Code ```java deviceManager.setPowerWithOption(true, true, true, true, true, true); ``` --- ## setReaderSettings Configures the reader features. ```{admonition} Note :class: warning On ASR-M30S, only **beep** can be configured. ``` ```java public void setReaderSettings(boolean beep, boolean vib, boolean led, boolean aimer) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Name - Type - Description * - `beep` - `boolean` - true: Beep on / false: Beep off * - `vib` - `boolean` - true: Vibration on / false: Vibration off * - `led` - `boolean` - true: LED on / false: LED off (battery LED) * - `aimer` - `boolean` - true: Aimer on / false: Aimer off ``` ### Sample Code ```java deviceManager.setReaderSettings(true, true, true, true); ``` --- ## getBattery Retrieves the battery information of the AsReader. After executing this method, information is received via the [onBatteryStateReceived](DeviceManagerCallback.md#onbatterystatereceived) callback. ```java public void getBattery() ``` ### Sample Code ```java deviceManager.getBattery(); ``` --- ## getReaderInfo Retrieves information about the AsReader. After executing this method, information is received via the following callbacks: - [onReaderInfoReceived](DeviceManagerCallback.md#onreaderinforeceived) - [onReaderAboutInfo](DeviceManagerCallback.md#onreaderaboutinfo) - [onReceivedRFIDModuleVersion](DeviceManagerCallback.md#onreceivedrfidmoduleversion) ```java public void getReaderInfo(int type) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Name - Type - Description * - `type` - `int` - 0xB1 or 0xB2: Request firmware information 0x01: Request RF module information 0xB0: Request all AsReader configuration information ``` ### Sample Code ```java deviceManager.getReaderInfo(0xB1); ``` --- ## isM30SDevice Determines whether the AsReader model is ASR-M30S. ```java public boolean isM30SDevice() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - `boolean` - true: ASR-M30S / false: Not ASR-M30S ``` ### Sample Code ```java boolean isM30S = deviceManager.isM30SDevice(); ```