-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
executable file
·107 lines (85 loc) · 2.9 KB
/
index.js
File metadata and controls
executable file
·107 lines (85 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/**
* @providesModule react-native-bluetooth-io
*/
type BluetoothDeviceInfo = {
name: string;
address: string;
};
var NativeAppEventEmitter = require('react-native').NativeAppEventEmitter; // iOS
var DeviceEventEmitter = require('react-native').DeviceEventEmitter; // Android
var base64 = require('base-64');
var utf8 = require('utf8');
// NativeModules.<Name> must match name returned by ReactContextBaseJavaModule::getName in java code
let BluetoothIOModule = require('react-native').NativeModules.BluetoothIOModule;
let Buffer = require('buffer').Buffer;
let listeners = {};
// let onDataRxEvent = "onDataRx";
// let onConnectEvent = "onConnect";
// let onDisconnectEvent = "onDisconnect";
const BluetoothConnectionState = {
"None": 0,
"Listen": 1,
"Connecting": 2,
"Connected": 3
};
let BluetoothIO = {
versionInfo() {
return "Version 0.0.0";
},
listenerAdd(eventName, cb) {
listeners[cb] = DeviceEventEmitter.addListener(eventName,
(messageRx) => {
cb(messageRx);
});
},
listenerRemove(cb) {
if (!listeners[cb]) {
return;
}
listeners[cb].remove();
listeners[cb] = null;
},
// Call from componentDidMount (when getCurrentActivity() is not null)
componentDidMount() {
BluetoothIOModule.componentDidMount();
},
debugFunction1() {
BluetoothIOModule.debugFunction1();
},
// Returns number of bytes written
writeString(data: string): Promise<number> {
return BluetoothIOModule.writeString(data);
},
connect(device: object, secure: boolean): Promise<BluetoothDeviceInfo[]> {
return BluetoothIOModule.connect(device, secure);
},
discoveryStart() {
BluetoothIOModule.discoveryStart();
},
discoveryStop() {
BluetoothIOModule.discoveryStop();
},
// 08-09 08:57:59.423 25258 25435 I ReactNativeJS: 'BluetoothIO.getDeviceList result: ', [ { name: 'TK_0003', address: '00:07:80:46:87:CD' },
// 08-09 08:57:59.423 25258 25435 I ReactNativeJS: { name: 'TK_0100', address: '00:07:80:A1:17:69' },
// 08-09 08:57:59.423 25258 25435 I ReactNativeJS: { name: 'BlueStar GNSS 18300008', address: '00:07:80:0D:21:0E' } ]
getDeviceList(deviceNameFilter: string): Promise<BluetoothDeviceInfo[]> {
return BluetoothIOModule.getDeviceList(deviceNameFilter).then(deviceArray => {
return deviceArray.map(device => ({
name: device.name,
address: device.address,
}));
});
},
// Get Bluetooth Adapter state
getState(): Promise<number> {
return BluetoothIOModule.getState();
},
// Set
// ToDo: Register a BroadcastReceiver to listen for any changes in the state of the BluetoothAdapter:
// http://stackoverflow.com/questions/9693755/detecting-state-changes-made-to-the-bluetoothadapter
setBluetoothEnable(value) {
console.log('setBluetoothEnable:', value);
return BluetoothIOModule.setBluetoothEnable(value);
}
};
module.exports = BluetoothIO;