# Method List ## getPlatformVersion Gets the Android OS version. ```dart Future getPlatformVersion() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - Android OS version ``` ### **Sample Code** ```dart Future version = _a3xdPlugin.getPlatformVersion(); version.then((futureResult) { }); ```
## getSDKVersion Gets the A3XD SDK version. ```dart Future getSDKVersion() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - SDK version ``` ### **Sample Code** ```dart Future version = _a3xdPlugin.getA3XDSDKVersion(); version.then((futureResult) { }); ```
## getA3XDFlutterVersion Gets the Flutter Plugin version. ```dart Future getA3XDFlutterVersion() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - Flutter Plugin version ``` ### **Sample Code** ```dart Future version = _a3xdPlugin.getA3XDFlutterVersion(); version.then((futureResult) { }); ```
## setLogLevel Sets the log level. ```dart Future setLogLevel(A3XDLogLevel level) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - level - A3XDLogLevel - Log level [`A3XDLogLevel`](enum.md#a3xdloglevel) ``` ### **Sample Code** ```dart _a3xdPlugin.setLogLevel(A3XDLogLevel.Error); ```
## getLogLevel Gets the log level. ```dart Future getLogLevel() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - Log level [`A3XDLogLevel`](enum.md#a3xdloglevel) ``` ### **Sample Code** ```dart Future level = _a3xdPlugin.getLogLevel(); level.then((futureResult) { }); ```
## setLog Sets log output enabled or disabled. ```dart Future setLog(bool enable) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - enable - bool - true: Enabled
false: Disabled ``` ### **Sample Code** ```dart _a3xdPlugin.setLog(true); ```
## removeSDKLog Removes all output logs. ```dart Future removeSDKLog() ``` ### **Sample Code** ```dart _a3xdPlugin.removeSDKLog(); ```
## isConnected Gets the connection status. ```dart Future isConnected() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - true: Connected
false: Not connected ``` ### **Sample Code** ```dart Future isConnected = _a3xdPlugin.isConnected(); isConnected.then((futureResult) { }); ```
## isPowerOn Gets the power on/off status of the AsReader. ```dart Future isPowerOn() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - true: Power on
false: Power off ``` ### **Sample Code** ```dart Future isPowerOn = _a3xdPlugin.isPowerOn(); isPowerOn.then((futureResult) { }); ```
## isOpen Gets the USB port status. ```dart Future isOpen() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - true: Enabled
false: Disabled ``` ### **Sample Code** ```dart Future isOpen = _a3xdPlugin.isOpen(); isOpen.then((futureResult) { }); ```
## setPower Sets the A3XD power on or off. ```dart Future setPower(bool enable) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - enable - bool - true: Turn A3XD power on
false: Turn A3XD power off ``` ### **Sample Code** ```dart _a3xdPlugin.setPower(true); ```
## setPowerWithOption Turns on the AsReader power and applies settings simultaneously. After executing this method, the settings content after configuration is received via the [ON\_COMPLETED\_PREPARATION](callbacks.md#on-completed-preparation) callback method. > ⚠️ **Note** > **ASR-M30S** supports only the `beep` setting. > ⚠️ **Note** > **ASR-A30D, ASR-A31D, and ASR-M30S** do not support the `aimer` setting. ```dart Future setPowerWithOption(bool power, bool beep, bool vib, bool led, bool aimer, bool powerOnBeep) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - power - bool - Power on/off
true: On
false: Off * - beep - bool - Beep on/off
true: On
false: Off * - vib - bool - Vibration on/off
true: On
false: Off * - led - bool - LED on/off
true: On
false: Off * - aimer - bool - Aimer on/off
true: On
false: Off * - powerOnBeep - bool - Power-on beep on/off
true: On
false: Off ``` ### **Sample Code** ```dart _a3xdPlugin.setPowerWithOption(true, true, true, true, true, true); ```
## setReaderSettings Configures AsReader settings. After executing this method, the setting result is received via the [ON\_SET\_READER\_SETTING\_SUCCESS](callbacks.md#on-set-reader-setting-success) callback method. > ⚠️ **Note** > **ASR-M30S** supports only the `beep` setting. > ⚠️ **Note** > **ASR-A30D, ASR-A31D, and ASR-M30S** do not support the `aimer` setting. ```dart Future setReaderSettings(bool beep, bool vib, bool led, bool aimer) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - beep - bool - Beep on/off
true: On
false: Off * - vib - bool - Vibration on/off
true: On
false: Off * - led - bool - LED on/off
true: On
false: Off * - aimer - bool - Aimer on/off
true: On
false: Off ``` ### **Sample Code** ```dart _a3xdPlugin.setReaderSettings(true, true, true, true); ```
## getBattery Gets the AsReader battery information. After executing this method, the battery information is received via the [ON\_BATTERY\_STATE\_RECEIVED](callbacks.md#on-battery-state-received) callback method. ```dart Future getBattery() ``` ### **Sample Code** ```dart _a3xdPlugin.getBattery(); ```
## getReaderInfo Gets AsReader information. After executing this method, AsReader information is received via the [ON\_READER\_INFO\_RECEIVED](callbacks.md#on-reader-info-received), [ON\_READER\_ABOUT\_INFO](callbacks.md#on-reader-about-info), and [ON\_RECEIVED\_RFID\_MODULE\_VERSION](callbacks.md#on-received-rfid-module-version) callback methods. ```dart Future getReaderInfo(int type) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - type - int - 0xB1 or 0xB2: Request firmware information
0x01: Request RF module information
0xB0: Request all AsReader setting information ``` ### **Sample Code** ```dart _a3xdPlugin.getReaderInfo(0xb1); ```
## isM30SDevice Gets whether the currently used device is an M30S. ```dart Future isM30SDevice() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - true: Is M30S
false: Is not M30S ``` ### **Sample Code** ```dart Future status = _a3xdPlugin.isM30SDevice(); status.then((futureResult) { }); ```
## setMaxTagValue Sets the maximum number of RF tags that can be read in a single inventory. ```dart Future setMaxTagValue(int value) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - value - int - Max RF tags readable in one inventory ``` ### **Sample Code** ```dart _a3xdPlugin.setMaxTagValue(1); ```
## getMaxTagValue Gets the maximum number of RF tags that can be read in a single inventory. ```dart Future getMaxTagValue() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - Max RF tags readable in one inventory ``` ### **Sample Code** ```dart Future value = _a3xdPlugin.getMaxTagValue(); value.then((futureResult) { }); ```
## setMaxTimeValue Sets the maximum time for a single inventory. ```dart Future setMaxTimeValue(int value) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - value - int - Max time for one inventory (unit: sec.) ``` ### **Sample Code** ```dart _a3xdPlugin.setMaxTimeValue(1); ```
## getMaxTimeValue Gets the maximum time for a single inventory. ```dart Future getMaxTimeValue() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - Max time for one inventory ``` ### **Sample Code** ```dart Future value = _a3xdPlugin.getMaxTimeValue(); value.then((futureResult) { }); ```
## setRepeatCycleValue Sets the number of inventory rounds to repeat in a single inventory. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future setRepeatCycleValue(int value) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - value - int - Inventory rounds to repeat in one inventory ``` ### **Sample Code** ```dart _a3xdPlugin.setRepeatCycleValue(1); ```
## getRepeatCycleValue Gets the number of inventory rounds to repeat in a single inventory. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future getRepeatCycleValue() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - Inventory rounds to repeat in one inventory ``` ### **Sample Code** ```dart Future value = _a3xdPlugin.getRepeatCycleValue(); value.then((futureResult) { }); ```
## setRSSIEnable Sets whether to acquire RSSI during inventory. ```dart Future setRSSIEnable(bool enable) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - enable - bool - true: Add
false: Do not add ``` ### **Sample Code** ```dart _a3xdPlugin.setRSSIEnable(true); ```
## getRSSIEnable Gets whether to acquire RSSI during inventory. ```dart Future getRSSIEnable() ``` ### Return Value ```{list-table} :align: left :class: list-table * - Type - Description * - Future - true: Add
false: Do not add ``` ### **Sample Code** ```dart Future enable = _a3xdPlugin.getRSSIEnable(); enable.then((futureResult) { }); ```
## startInventory Starts inventory. After executing this method, inventoried data is received via the [ON\_TAG\_RECEIVED](callbacks.md#on-tag-received) callback method. After executing this method, the result of automatic inventory completion is received via the [ON\_AUTO\_INVENTORY\_FINISHED](callbacks.md#on-auto-inventory-finished) callback method. > ⚠️ **Note** > **ASR-M30S** does not support the `repeatCycle` setting. ```dart Future startInventory(int maxTags, int maxTime, int repeatCycle) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - maxTags - int - Max number of RF tags to read * - maxTime - int - Max time for one inventory * - repeatCycle - int - Max inventory rounds for one inventory ``` ### **Sample Code** ```dart _a3xdPlugin.startInventory(0, 0, 0); ```
## startInventoryRSSI Starts inventory. After executing this method, inventoried data including RSSI information is received via the [ON\_TAG\_WITH\_RSSI\_RECEIVED](callbacks.md#on-tag-with-rssi-received) callback method. > ⚠️ **Note** > **ASR-M30S** does not support the `repeatCycle` setting. ```dart Future startInventoryRSSI(int maxTags, int maxTime, int repeatCycle) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - maxTags - int - Max number of RF tags to read * - maxTime - int - Max read time * - repeatCycle - int - Number of repeated reads ``` ### **Sample Code** ```dart _a3xdPlugin.startInventoryRSSI(0, 0, 0); ```
## startInventoryTagID Starts inventory. After executing this method, inventoried data including TID information is received via the [ON\_TAG\_WITH\_TID\_RECEIVED](callbacks.md#on-tag-with-tid-received) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future startInventoryTagID(int maxTags, int maxTime, int repeatCycle) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - maxTags - int - Max number of RF tags to read * - maxTime - int - Max read time * - repeatCycle - int - Number of repeated reads ``` ### **Sample Code** ```dart _a3xdPlugin.startInventoryTagID(0, 0, 0); ```
## startRFMDecode Starts inventory for temperature/humidity RF tags. After executing this method, data from inventoried temperature/humidity RF tags is received via the [ON\_PC\_EPC\_SENSOR\_DATA\_RECEIVED](callbacks.md#on-pc-epc-sensor-data-received) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future startRFMDecode(int codeType, int maxTags, int maxTime, int repeatCycle) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - codeType - int - Tag sensor type (0x02: Humidity, 0x03: Temperature) * - maxTags - int - Max number of RF tags to read * - maxTime - int - Max read time * - repeatCycle - int - Number of repeated reads ``` ### **Sample Code** ```dart _a3xdPlugin.startRFMDecode(0x02, 0, 0, 0); ```
## stopDecode Stops inventory. ```dart Future stopDecode() ``` ### **Sample Code** ```dart _a3xdPlugin.stopDecode(); ```
## setRegion Sets the AsReader region. After executing this method, the hopping mode setting result is received via the [DID\_RECEIVE\_REGION](callbacks.md#did-receive-region) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future setRegion(int region) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - region - int - KOREA (0x11), USA Wide (0x21), USA Narrow (0x22), EUROPE (0x31), JAPAN (0x41), CHINA (0x51),(0x52), BRAZIL (0x61),(0x62), AU HK (0x71) ``` ### **Sample Code** ```dart _a3xdPlugin.setRegion(0x11); ```
## getRegion Gets the AsReader region. After executing this method, the region is received via the [ON\_REGION\_RECEIVED](callbacks.md#on-region-received) callback method. ```dart Future getRegion() ``` ### **Sample Code** ```dart _a3xdPlugin.getRegion(); ```
## setSmartHopping Sets the hopping mode. After executing this method, the region setting result is received via the [DID\_SET\_SMART\_MODE](callbacks.md#did-set-smart-mode) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future setSmartHopping(bool isOn) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - isOn - bool - true: Smart hopping mode
false: Normal mode ``` ### **Sample Code** ```dart _a3xdPlugin.setSmartHopping(true); ```
## getFrequencyHoppingMode Gets the hopping mode. After executing this method, the hopping mode is received via the [ON\_RECEIVE\_SMART\_MODE](callbacks.md#on-receive-smart-mode) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future getFrequencyHoppingMode() ``` ### **Sample Code** ```dart _a3xdPlugin.getFrequencyHoppingMode(); ```
## setOptimumFrequencyHoppingTable Sets the hopping table. After executing this method, the hopping table setting result is received via the [DID\_SET\_OPTI\_FREQ\_HP\_TABLE](callbacks.md#did-set-opti-freq-hp-table) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future setOptimumFrequencyHoppingTable() ``` ### **Sample Code** ```dart _a3xdPlugin.setOptimumFrequencyHoppingTable(); ```
## getFrequencyHoppingTable Gets the hopping table. After executing this method, the hopping table is received via the [ON\_GET\_FREQUENCY\_HOPPING\_TABLE\_SUCCESS](callbacks.md#on-get-frequency-hopping-table-success) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future getFrequencyHoppingTable() ``` ### **Sample Code** ```dart _a3xdPlugin.getFrequencyHoppingTable(); ```
## setChannel Sets the channel. After executing this method, the channel setting result is received via the [ON\_SET\_CHANNEL\_SUCCESS](callbacks.md#on-set-channel-success) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future setChannel(int num, int offset) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - num - int - Channel number * - offset - int - Channel offset ``` ### **Sample Code** ```dart _a3xdPlugin.setChannel(0, 0); ```
## getChannel Gets the channel. After executing this method, the channel is received via the [ON\_CHANNEL\_RECEIVED](callbacks.md#on-channel-received) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future getChannel() ``` ### **Sample Code** ```dart _a3xdPlugin.getChannel(); ```
## setSession Sets the Session. After executing this method, the Session setting result is received via the [ON\_SET\_SESSION\_SUCCESS](callbacks.md#on-set-session-success) callback method. ```dart Future setSession(int session) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - session - int - S0:0, S1:1, S2:2, S3:3 ``` ### **Sample Code** ```dart _a3xdPlugin.setSession(0); ```
## getSession Gets the Session. After executing this method, the Session is received via the [ON\_SESSION\_RECEIVED](callbacks.md#on-session-received) callback method. ```dart Future getSession() ``` ### **Sample Code** ```dart _a3xdPlugin.getSession(); ```
## setAntiCollisionMode Sets the anti-collision algorithm. After executing this method, the anti-collision algorithm setting result is received via the [ON\_SET\_ANTICOLLISION\_MODE\_SUCCESS](callbacks.md#on-set-anticollision-mode-success) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future setAntiCollisionMode(int mode, int start, int max, int min, int counter) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - mode - int - Anti-collision mode: Fixed Q (0x00), Dynamic Q (0x01) * - start - int - Q start position * - max - int - Q maximum value * - min - int - Q minimum value * - counter - int - Counter ``` ### **Sample Code** ```dart _a3xdPlugin.setAntiCollisionMode(0x00, 0, 0, 0, 1); ```
## getAntiCollisionMode Gets the anti-collision algorithm. After executing this method, the anti-collision algorithm is received via the [ON\_RECEIVED\_ANTIMODE](callbacks.md#on-received-antimode) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future getAntiCollisionMode() ``` ### **Sample Code** ```dart _a3xdPlugin.getAntiCollisionMode(); ```
## setFhLbtParam Sets FH and LBT parameters. After executing this method, the FH and LBT parameter setting result is received via the [ON\_SET\_FH\_LBT\_PARAM\_SUCCESS](callbacks.md#on-set-fh-lbt-param-success) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future setFhLbtParam(int readTime, int idleTime, int senseTime, int rfLevel, int fhMode, int lbtMode, int cwMode) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - readTime - int - Read time * - idleTime - int - Idle time * - senseTime - int - Carrier sense time * - rfLevel - int - Target frequency level * - fhMode - int - On (0x01 or higher) / Off (0x00) * - lbtMode - int - On (0x01 or higher) / Off (0x00) * - cwMode - int - On (0x01) / Off (0x00) ``` ### **Sample Code** ```dart _a3xdPlugin.setFhLbtParam(0, 0, 0, 0, 0x01, 0x01, 0x01); ```
## getFhLbtParam Gets FH and LBT parameters. After executing this method, the FH and LBT parameters are received via the [ON\_FH\_LBT\_RECEIVED](callbacks.md#on-fh-lbt-received) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future getFhLbtParam() ``` ### **Sample Code** ```dart _a3xdPlugin.getFhLbtParam(); ```
## setModulation Sets the modulation mode. After executing this method, the modulation mode setting result is received via the [DID\_SET\_MODULATION](callbacks.md#did-set-modulation) callback method. ```dart Future setModulation(String mode) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - mode - String - Modulation mode ``` ### **Sample Code** ```dart _a3xdPlugin.setModulation('160KHz, FM0, DR=64/3'); ```
## getModulation Gets the modulation mode. After executing this method, the modulation mode is received via the [ON\_MODULATION\_RECEIVED](callbacks.md#on-modulation-received) callback method. ```dart Future getModulation() ``` ### **Sample Code** ```dart _a3xdPlugin.getModulation(); ```
## setTriggerStopCondition Sets the conditions for stopping inventory. After executing this method, the stop condition setting result is received via the [ON\_SET\_TRIGGER\_STOP\_CONDITION\_SUCCESS](callbacks.md#on-set-trigger-stop-condition-success) callback method. > ⚠️ **Note** > **ASR-M30S** does not support this feature. ```dart Future setTriggerStopCondition(int maxTags, int maxTime, int repeatCycle) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - maxTags - int - Max number of RF tags to read * - maxTime - int - Max read time * - repeatCycle - int - Number of repeated reads ``` ### **Sample Code** ```dart _a3xdPlugin.setTriggerStopCondition(0, 0, 0); ```
## readTagMemory Reads data from the specified memory bank of the target RF tag. After executing this method, the read data is received via the [ON\_TAG\_MEMORY\_RECEIVED](callbacks.md#on-tag-memory-received) and [ON\_TAG\_MEMORY\_LONG\_RECEIVED](callbacks.md#on-tag-memory-long-received) callback methods. ```dart Future readTagMemory(int password, String targetEPC, A3XDMemoryBank memoryBank, A3XDReadMemoryType readType) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Access password * - targetEPC - String - Target EPC data * - memoryBank - A3XDMemoryBank - Target memory bank [`A3XDMemoryBank`](enum.md#a3xdmemorybank) * - readType - A3XDReadMemoryType - Read memory bank type [`A3XDReadMemoryType`](enum.md#a3xdreadmemorytype) ``` ### **Sample Code** ```dart _a3xdPlugin.readTagMemory(12345678, '0123456789', A3XDMemoryBank.RESERVED, A3XDReadMemoryType.NORMAL); ```
## readTagMemoryWithTimeout Reads data from the specified memory bank of the target RF tag until the timeout expires. After executing this method, the read data is received via the [ON\_TAG\_MEMORY\_RECEIVED](callbacks.md#on-tag-memory-received) and [ON\_TAG\_MEMORY\_LONG\_RECEIVED](callbacks.md#on-tag-memory-long-received) callback methods. ```dart Future readTagMemoryWithTimeout(int password, String targetEPC, A3XDMemoryBank memoryBank, A3XDReadMemoryType readType, int timeout) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Access password * - targetEPC - String - Target EPC data * - memoryBank - A3XDMemoryBank - Target memory bank [`A3XDMemoryBank`](enum.md#a3xdmemorybank) * - readType - A3XDReadMemoryType - Read memory bank type [`A3XDReadMemoryType`](enum.md#a3xdreadmemorytype) * - timeout - int - Timeout time ``` ### **Sample Code** ```dart _a3xdPlugin.readTagMemoryWithTimeout(12345678, '0123456789', A3XDMemoryBank.RESERVED, A3XDReadMemoryType.NORMAL, 10); ```
## readTagMemoryWithData Reads data from the specified memory bank of the target RF tag. After executing this method, the read data is received via the [ON\_TAG\_MEMORY\_RECEIVED](callbacks.md#on-tag-memory-received) and [ON\_TAG\_MEMORY\_LONG\_RECEIVED](callbacks.md#on-tag-memory-long-received) callback methods. ```dart Future readTagMemoryWithData(int password, String targetEPC, A3XDMemoryBank memoryBank, A3XDReadMemoryType readType, int startAddress, int dataLength, int timeout) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Access password * - targetEPC - String - Target EPC data * - memoryBank - A3XDMemoryBank - Target memory bank [`A3XDMemoryBank`](enum.md#a3xdmemorybank) * - readType - A3XDReadMemoryType - Read memory bank type [`A3XDReadMemoryType`](enum.md#a3xdreadmemorytype) * - startAddress - int - Start address of data to read (word) * - dataLength - int - Length of data to read (word) * - timeout - int - Timeout time ``` ### **Sample Code** ```dart _a3xdPlugin.readTagMemoryWithData(12345678, '0123456789', A3XDMemoryBank.RESERVED, A3XDReadMemoryType.NORMAL, 0, 2, 10); ```
## writeTagMemory Writes data to the specified memory bank of the target RF tag. After executing this method, the write result is received via the [ON\_WRITE\_TO\_TAG\_MEMORY\_SUCCESS](callbacks.md#on-write-to-tag-memory-success) callback method. ```dart Future writeTagMemory(int password, String targetEPC, A3XDMemoryBank memoryBank, A3XDWriteMemoryType writeType, Uint8List writeData) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Access password * - targetEPC - String - Target EPC data * - memoryBank - A3XDMemoryBank - Target memory bank [`A3XDMemoryBank`](enum.md#a3xdmemorybank) * - writeType - A3XDWriteMemoryType - Write type [`A3XDWriteMemoryType`](enum.md#a3xdwritememorytype) * - writeData - Uint8List - Data to write ``` ### **Sample Code** ```dart Uint8List byteList = Uint8List.fromList([0x12, 0x34, 0x56, 0x78]); _a3xdPlugin.writeTagMemory(12345678, '0123456789', A3XDMemoryBank.RESERVED, A3XDWriteMemoryType.NORMAL, byteList); ```
## writeTagMemoryWithTimeout Attempts to write data to the specified memory bank of the target RF tag until the timeout expires. After executing this method, the write result is received via the [ON\_WRITE\_TO\_TAG\_MEMORY\_SUCCESS](callbacks.md#on-write-to-tag-memory-success) callback method. ```dart Future writeTagMemoryWithTimeout(int password, String targetEPC, A3XDMemoryBank memoryBank, A3XDWriteMemoryType writeType, Uint8List writeData, int timeout) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Access password * - targetEPC - String - Target EPC data * - memoryBank - A3XDMemoryBank - Target memory bank [`A3XDMemoryBank`](enum.md#a3xdmemorybank) * - writeType - A3XDWriteMemoryType - Write type [`A3XDWriteMemoryType`](enum.md#a3xdwritememorytype) * - writeData - Uint8List - Data that needs to be written * - timeout - int - Timeout time ``` ### **Sample Code** ```dart Uint8List byteList = Uint8List.fromList([0x12, 0x34, 0x56, 0x78]); _a3xdPlugin.writeTagMemoryWithTimeout(12345678, '0123456789', A3XDMemoryBank.RESERVED, A3XDWriteMemoryType.NORMAL, byteList, 10); ```
## writeTagMemoryWithData Writes data to the specified memory bank of the target RF tag. After executing this method, the write result is received via the [ON\_WRITE\_TO\_TAG\_MEMORY\_SUCCESS](callbacks.md#on-write-to-tag-memory-success) callback method. ```dart Future writeTagMemoryWithData(int password, String targetEPC, A3XDMemoryBank memoryBank, A3XDWriteMemoryType writeType, int startAddress, Uint8List writeData, int timeout) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Access password * - targetEPC - String - Target EPC data * - memoryBank - A3XDMemoryBank - Target memory bank [`A3XDMemoryBank`](enum.md#a3xdmemorybank) * - writeType - A3XDWriteMemoryType - Write type [`A3XDWriteMemoryType`](enum.md#a3xdwritememorytype) * - startAddress - int - Write start position of the tag * - writeData - Uint8List - Data to write * - timeout - int - Timeout time ``` ### **Sample Code** ```dart Uint8List byteList = Uint8List.fromList([0x12, 0x34, 0x56, 0x78]); _a3xdPlugin.writeTagMemoryWithData(12345678, '0123456789', A3XDMemoryBank.RESERVED, A3XDWriteMemoryType.NORMAL, 0, byteList, 10); ```
## lockTagMemory Locks the specified memory bank of the target RF tag. After executing this method, the RF tag lock result is received via the [ON\_LOCK\_TAG\_MEMORY\_SUCCESS](callbacks.md#on-lock-tag-memory-success) callback method. ```dart Future lockTagMemory(int password, String targetEPC, int lockData) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Password * - targetEPC - String - Target EPC data * - lockData - int - A total of 24 bits of data is required. If less than 24 bits, pad the beginning with dummy zeros. ``` ### **Sample Code** ```dart _a3xdPlugin.lockTagMemory(12345678, '0123456789', 0); ```
## lockTagMemoryWithTimeout Attempts to lock the specified memory bank of the target RF tag until the timeout expires. After executing this method, the RF tag lock result is received via the [ON\_LOCK\_TAG\_MEMORY\_SUCCESS](callbacks.md#on-lock-tag-memory-success) callback method. ```dart Future lockTagMemoryWithTimeout(int password, String targetEPC, int lockData, int timeout) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Password * - targetEPC - String - Target EPC data * - lockData - int - A total of 24 bits of data is required. If less than 24 bits, pad the beginning with dummy zeros. * - timeout - int - Timeout time ``` ### **Sample Code** ```dart _a3xdPlugin.lockTagMemoryWithTimeout(12345678, '0123456789', 0, 10); ```
## killTag Kills the RF tag. After executing this method, the RF tag kill result is received via the [ON\_KILL\_TAG\_MEMORY\_SUCCESS](callbacks.md#on-kill-tag-memory-success) callback method. ```dart Future killTag(int password, String targetEPC) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - password - int - Password * - targetEPC - String - Target EPC data ``` ### **Sample Code** ```dart _a3xdPlugin.killTag(12345678, '0123456789'); ```
## updateRegistry Sets the registry update function. (Settings are saved to AsReader's flash memory). After executing this method, the registry update function setting result is received via the [DID\_UPDATE\_REGISTRY](callbacks.md#did-update-registry) callback method. ```dart Future updateRegistry() ``` ### **Sample Code** ```dart _a3xdPlugin.updateRegistry(); ```
## getContinuousMode Gets the continuous scan status. After executing this method, the continuous scan status is received via the [ON\_RECEIVE\_CONTINUOUS\_MODE](callbacks.md#on-receive-continuous-mode) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future getContinuousMode() ``` ### **Sample Code** ```dart _a3xdPlugin.getContinuousMode(); ```
## setContinuousMode Sets the continuous scan status. After executing this method, the continuous scan setting result is received via the [DID\_SET\_CONTINUOUS\_MODE](callbacks.md#did-set-continuous-mode) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future setContinuousMode(bool isOn) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - isOn - bool - true: Continuous scan
false: Single scan ``` ### **Sample Code** ```dart _a3xdPlugin.setContinuousMode(true); ```
## getAutoOffTime Gets the device's auto-off time. After executing this method, the auto-off time is received via the [ON\_RECEIVE\_AUTO\_OFF\_TIME](callbacks.md#on-receive-auto-off-time) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future getAutoOffTime() ``` ### **Sample Code** ```dart _a3xdPlugin.getAutoOffTime(); ```
## setAutoOffTime Sets the device's auto-off time. After executing this method, the auto-off time setting result is received via the [DID\_SET\_AUTO\_OFF\_TIME](callbacks.md#did-set-auto-off-time) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future setAutoOffTime(int time) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - time - int - Auto-off time (0-1800s) 0: Do not auto-off ``` ### **Sample Code** ```dart _a3xdPlugin.setAutoOffTime(10); ```
## getHidMode Gets whether the connected AsReader device is set to the HID mode. After executing this method, the HID status will be received via the [ON\_RECEIVE\_HID\_MODE](callbacks.md#on-receive-hid-mode) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future getHidMode() ``` ### **Sample Code** ```dart _a3xdPlugin.getHidMode(); ```
## setHidMode Sets the connected AsReader's operation mode. After executing this method, the result will be received via the [DID\_SET\_HID\_MODE](callbacks.md#did-set-hid-mode) callback method. ```dart Future setHidMode(bool hidMode) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - hidMode - bool - true: HID mode
false: Not HID mode ``` ### **Sample Code** ```dart _a3xdPlugin.setHidMode(true); ```
## getQValue Gets the Q value setting set to the connected AsReader device. After executing this method, the device's Q value is received via the [ON\_RECEIVE\_Q\_VALUE](callbacks.md#on-receive-q-value) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future getQValue() ``` ### **Sample Code** ```dart _a3xdPlugin.getQValue(); ```
## setQValue Sets a Q value setting to the connected AsReader device. After executing this method, the Q value setting result is received via the [DID\_SET\_Q\_VALUE](callbacks.md#did-set-q-value) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future setQValue(int value) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - value - int - Q value ``` ### **Sample Code** ```dart _a3xdPlugin.setQValue(1); ```
## getSessionFlag Gets the SessionFlag setting set to the AsReader device. After executing this method, the device's SessionFlag is received via the [ON\_RECEIVE\_SESSION\_FLAG](callbacks.md#on-receive-session-flag) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future getSessionFlag() ``` ### **Sample Code** ```dart _a3xdPlugin.getSessionFlag(); ```
## setSessionFlag Sets a SessionFlag setting to the connected AsReader device. After executing this method, the SessionFlag setting result is received via the [DID\_SET\_SESSION\_FLAG](callbacks.md#did-set-session-flag) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future setSessionFlag(int sessionFlag) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - sessionFlag - int - SessionFlag ``` ### **Sample Code** ```dart _a3xdPlugin.setSessionFlag(1); ```
## getDutyRatio Gets the duty ratio setting set to the AsReader device. After executing this method, the AsReader's duty ratio is received via the [ON\_RECEIVE\_DUTY\_RATIO](callbacks.md#on-receive-duty-ratio) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future getDutyRatio() ``` ### **Sample Code** ```dart _a3xdPlugin.getDutyRatio(); ```
## setDutyRatio Sets a duty ratio setting to the connected AsReader device. Range: 0-15 0: Full load; 1: 5%; 2: 10%; 3: 15%; 4: 20%; 5: 25%; 6: 30%; 7: 35%; 8: 40%; 9: 45%; 10: 50%; 11: 55%; 12: 60%; 13: 70%; 14: 80%; 15: 90% \*e.g., 5% means stopping for 5% of the `dutyRatioBaseTime` set by `setDutyRatioBaseTime` described later. After executing this method, the duty ratio setting result is received via the [DID\_SET\_DUTY\_RATIO](callbacks.md#did-set-duty-ratio) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future setDutyRatio(int dutyRatio) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - dutyRatio - int - Duty ratio ``` ### **Sample Code** ```dart _a3xdPlugin.setDutyRatio(1); ```
## getDutyRatioBaseTime Gets the duty ratio base time setting set to the connected AsReader device. After executing this method, the duty ratio base time is received via the [ON\_RECEIVE\_DUTY\_RATIO\_BASE\_TIME](callbacks.md#on-receive-duty-ratio-base-time) callback method. ```dart Future getDutyRatioBaseTime() ``` ### **Sample Code** ```dart _a3xdPlugin.getDutyRatioBaseTime(); ```
## setDutyRatioBaseTime Sets a duty ratio base time setting to the attached AsReader device(Range: 0-65000ms). After executing this method, the duty ratio base time setting result is received via the [DID\_SET\_DUTY\_RATIO\_BASE\_TIME](callbacks.md#did-set-duty-ratio-base-time) callback method. > ⚠️ **Note** > Only **ASR-M30S** supports this feature. ```dart Future setDutyRatioBaseTime(int dutyRatioBaseTime) ``` ### Parameters ```{list-table} :align: left :class: list-table * - Argument Name - Type - Description * - dutyRatioBaseTime - int - Duty ratio base time ``` ### **Sample Code** ```dart _a3xdPlugin.setDutyRatioBaseTime(1000); ```