import { NativeEventEmitter, NativeModules } from 'react-native'; const { RxBluetoothRfidScanner } = NativeModules; const eventEmitter = new NativeEventEmitter(RxBluetoothRfidScanner); /** * TYPES */ type initializeReader = () => Promise; type deInitializeReader = () => Promise; type getCurrentState = () => Promise; type enableBluetooth = () => Promise; type disableBluetooth = () => Promise; type isBluetoothEnabled = () => Promise; type scanForDevices = () => Promise; type stopScanForDevices = () => Promise; type connectToDevice = (address: string) => Promise; type readSingleTag = () => Promise; type setFilters = (data: string, ptr: string, len: string) => Promise; type setEPCMode = (mode: string) => Promise; type setTIDMode = (mode: string) => Promise; type setUserMode = (mode: string) => Promise; type startInventoryScan = () => Promise; type stopInventoryScan = () => Promise; type AddListener = (cb: (args: any[]) => void) => void; type clearData = () => Promise; /** * * METHODS */ const initializeReader: initializeReader = () => RxBluetoothRfidScanner.initializeReader(); const deInitializeReader: deInitializeReader = () => RxBluetoothRfidScanner.deInitializeReader(); const getCurrentState: getCurrentState = () => RxBluetoothRfidScanner.getCurrentState(); const enableBluetooth: enableBluetooth = () => RxBluetoothRfidScanner.enableBluetooth(); const disableBluetooth: disableBluetooth = () => RxBluetoothRfidScanner.disableBluetooth(); const isBluetoothEnabled: isBluetoothEnabled = () => RxBluetoothRfidScanner.isBluetoothEnabled(); const scanForDevices: scanForDevices = () => RxBluetoothRfidScanner.scanForDevices(); const stopScanForDevices: stopScanForDevices = () => RxBluetoothRfidScanner.stopScanForDevices(); const connectToDevice: connectToDevice = (address) => RxBluetoothRfidScanner.connectToDevice(address); const readSingleTag: readSingleTag = () => RxBluetoothRfidScanner.readSingleTag(); const startInventoryScan: startInventoryScan = () => RxBluetoothRfidScanner.startInventoryScan(); const stopInventoryScan: stopInventoryScan = () => RxBluetoothRfidScanner.stopInventoryScan(); const setEPCMode: setEPCMode = (mode) => RxBluetoothRfidScanner.setEPCMode(mode); const setTIDMode: setTIDMode = (mode) => RxBluetoothRfidScanner.setTIDMode(mode); const setUserMode: setUserMode = (mode) => RxBluetoothRfidScanner.setUserMode(mode); const bluetoothListener: AddListener = (listener) => eventEmitter.addListener('BLE_EVENT', listener); const setFilters: setFilters = (data: string, ptr: string, len: string) => RxBluetoothRfidScanner.setFilters(data, ptr, len); const clearData: clearData = () => RxBluetoothRfidScanner.clearData(); export default { bluetoothListener, initializeReader, deInitializeReader, getCurrentState, enableBluetooth, disableBluetooth, isBluetoothEnabled, scanForDevices, connectToDevice, stopScanForDevices, readSingleTag, setFilters, setEPCMode, setTIDMode, setUserMode, startInventoryScan, stopInventoryScan, clearData, };