@ovok/native 1.16.1-dev.2163 → 1.16.1-dev.2165
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js +30 -2
- package/lib/commonjs/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
- package/lib/module/modules/bt-management/services/devices/bt-command-writer.js +30 -2
- package/lib/module/modules/bt-management/services/devices/bt-command-writer.js.map +1 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts +6 -1
- package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts +6 -1
- package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -28,6 +28,7 @@ const ATT_WRITE_HEADER_BYTES = 3;
|
|
|
28
28
|
class BTCommandWriter {
|
|
29
29
|
pendingWrites = Promise.resolve();
|
|
30
30
|
mtu = DEFAULT_ATT_MTU;
|
|
31
|
+
writeOnlyWithoutResponse = new Map();
|
|
31
32
|
constructor(device, onError, isNormalDisconnect, retryAfterPairing = _btPairingRetry.runOnce) {
|
|
32
33
|
this.device = device;
|
|
33
34
|
this.onError = onError;
|
|
@@ -101,16 +102,43 @@ class BTCommandWriter {
|
|
|
101
102
|
* Writes one chunk the way the characteristic accepts writes.
|
|
102
103
|
*
|
|
103
104
|
* A with-response write to a characteristic that only supports write-without-response
|
|
104
|
-
* fails outright,
|
|
105
|
+
* fails outright, and some devices drop the link on it. A command can say which it is;
|
|
106
|
+
* otherwise the characteristic's own properties decide.
|
|
105
107
|
*/
|
|
106
108
|
writeTo = async (command, value) => {
|
|
107
|
-
if (command.withoutResponse) {
|
|
109
|
+
if (command.withoutResponse || (await this.acceptsOnlyWithoutResponse(command))) {
|
|
108
110
|
await this.device.writeCharacteristicWithoutResponseForService(command.serviceUuid, command.characteristicUuid, value);
|
|
109
111
|
return;
|
|
110
112
|
}
|
|
111
113
|
await this.device.writeCharacteristicWithResponseForService(command.serviceUuid, command.characteristicUuid, value);
|
|
112
114
|
};
|
|
113
115
|
|
|
116
|
+
/** Reads once per characteristic whether it refuses with-response writes. */
|
|
117
|
+
acceptsOnlyWithoutResponse = command => {
|
|
118
|
+
const key = `${command.serviceUuid}|${command.characteristicUuid}`.toLowerCase();
|
|
119
|
+
const known = this.writeOnlyWithoutResponse.get(key);
|
|
120
|
+
if (known) {
|
|
121
|
+
return known;
|
|
122
|
+
}
|
|
123
|
+
const lookup = this.readAcceptsOnlyWithoutResponse(command);
|
|
124
|
+
this.writeOnlyWithoutResponse.set(key, lookup);
|
|
125
|
+
return lookup;
|
|
126
|
+
};
|
|
127
|
+
readAcceptsOnlyWithoutResponse = async ({
|
|
128
|
+
serviceUuid,
|
|
129
|
+
characteristicUuid
|
|
130
|
+
}) => {
|
|
131
|
+
try {
|
|
132
|
+
const characteristics = await this.device.characteristicsForService(serviceUuid);
|
|
133
|
+
const characteristic = characteristics.find(({
|
|
134
|
+
uuid
|
|
135
|
+
}) => uuid.toLowerCase() === characteristicUuid.toLowerCase());
|
|
136
|
+
return Boolean(characteristic?.isWritableWithoutResponse && !characteristic.isWritableWithResponse);
|
|
137
|
+
} catch {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
114
142
|
/**
|
|
115
143
|
* Splits a frame into writes the link will carry whole.
|
|
116
144
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_sentryLogger","require","_bluetoothError","_hexToBase","_btPairingRetry","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","isNormalDisconnect","retryAfterPairing","runOnce","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","sentryLogger","hexToBase64","join","message","toBluetoothError","expectedEnd","test","errorCode","code","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,UAAA,GAAAF,OAAA;AAEA,IAAAG,eAAA,GAAAH,OAAA;AAEA,MAAMI,kBAAkB,GAAG,CAAC;;AAE5B;AACA,MAAMC,eAAe,GAAG,EAAE;;AAE1B;AACA,MAAMC,sBAAsB,GAAG,CAAC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,CAAC;EACnBC,aAAa,GAAkBC,OAAO,CAACC,OAAO,CAAC,CAAC;EAChDC,GAAG,GAAGN,eAAe;
|
|
1
|
+
{"version":3,"names":["_sentryLogger","require","_bluetoothError","_hexToBase","_btPairingRetry","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","writeOnlyWithoutResponse","Map","constructor","device","onError","isNormalDisconnect","retryAfterPairing","runOnce","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","acceptsOnlyWithoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","key","toLowerCase","known","get","lookup","readAcceptsOnlyWithoutResponse","set","characteristics","characteristicsForService","characteristic","find","uuid","Boolean","isWritableWithoutResponse","isWritableWithResponse","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","sentryLogger","hexToBase64","join","message","toBluetoothError","expectedEnd","test","errorCode","code","exports"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,6 +24,7 @@ const ATT_WRITE_HEADER_BYTES = 3;
|
|
|
24
24
|
export class BTCommandWriter {
|
|
25
25
|
pendingWrites = Promise.resolve();
|
|
26
26
|
mtu = DEFAULT_ATT_MTU;
|
|
27
|
+
writeOnlyWithoutResponse = new Map();
|
|
27
28
|
constructor(device, onError, isNormalDisconnect, retryAfterPairing = runOnce) {
|
|
28
29
|
this.device = device;
|
|
29
30
|
this.onError = onError;
|
|
@@ -97,16 +98,43 @@ export class BTCommandWriter {
|
|
|
97
98
|
* Writes one chunk the way the characteristic accepts writes.
|
|
98
99
|
*
|
|
99
100
|
* A with-response write to a characteristic that only supports write-without-response
|
|
100
|
-
* fails outright,
|
|
101
|
+
* fails outright, and some devices drop the link on it. A command can say which it is;
|
|
102
|
+
* otherwise the characteristic's own properties decide.
|
|
101
103
|
*/
|
|
102
104
|
writeTo = async (command, value) => {
|
|
103
|
-
if (command.withoutResponse) {
|
|
105
|
+
if (command.withoutResponse || (await this.acceptsOnlyWithoutResponse(command))) {
|
|
104
106
|
await this.device.writeCharacteristicWithoutResponseForService(command.serviceUuid, command.characteristicUuid, value);
|
|
105
107
|
return;
|
|
106
108
|
}
|
|
107
109
|
await this.device.writeCharacteristicWithResponseForService(command.serviceUuid, command.characteristicUuid, value);
|
|
108
110
|
};
|
|
109
111
|
|
|
112
|
+
/** Reads once per characteristic whether it refuses with-response writes. */
|
|
113
|
+
acceptsOnlyWithoutResponse = command => {
|
|
114
|
+
const key = `${command.serviceUuid}|${command.characteristicUuid}`.toLowerCase();
|
|
115
|
+
const known = this.writeOnlyWithoutResponse.get(key);
|
|
116
|
+
if (known) {
|
|
117
|
+
return known;
|
|
118
|
+
}
|
|
119
|
+
const lookup = this.readAcceptsOnlyWithoutResponse(command);
|
|
120
|
+
this.writeOnlyWithoutResponse.set(key, lookup);
|
|
121
|
+
return lookup;
|
|
122
|
+
};
|
|
123
|
+
readAcceptsOnlyWithoutResponse = async ({
|
|
124
|
+
serviceUuid,
|
|
125
|
+
characteristicUuid
|
|
126
|
+
}) => {
|
|
127
|
+
try {
|
|
128
|
+
const characteristics = await this.device.characteristicsForService(serviceUuid);
|
|
129
|
+
const characteristic = characteristics.find(({
|
|
130
|
+
uuid
|
|
131
|
+
}) => uuid.toLowerCase() === characteristicUuid.toLowerCase());
|
|
132
|
+
return Boolean(characteristic?.isWritableWithoutResponse && !characteristic.isWritableWithResponse);
|
|
133
|
+
} catch {
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
|
|
110
138
|
/**
|
|
111
139
|
* Splits a frame into writes the link will carry whole.
|
|
112
140
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["sentryLogger","toBluetoothError","hexToBase64","runOnce","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","constructor","device","onError","isNormalDisconnect","retryAfterPairing","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","join","message","expectedEnd","test","errorCode","code"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":";;AAEA,SAASA,YAAY,QAAQ,yCAAsC;AACnE,SAASC,gBAAgB,QAAQ,gCAA6B;AAE9D,SAASC,WAAW,QAAQ,+BAA4B;AAExD,SAAuBC,OAAO,QAAQ,uBAAoB;AAE1D,MAAMC,kBAAkB,GAAG,CAAC;;AAE5B;AACA,MAAMC,eAAe,GAAG,EAAE;;AAE1B;AACA,MAAMC,sBAAsB,GAAG,CAAC;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,CAAC;EACnBC,aAAa,GAAkBC,OAAO,CAACC,OAAO,CAAC,CAAC;EAChDC,GAAG,GAAGN,eAAe;
|
|
1
|
+
{"version":3,"names":["sentryLogger","toBluetoothError","hexToBase64","runOnce","MAX_WRITE_ATTEMPTS","DEFAULT_ATT_MTU","ATT_WRITE_HEADER_BYTES","BTCommandWriter","pendingWrites","Promise","resolve","mtu","writeOnlyWithoutResponse","Map","constructor","device","onError","isNormalDisconnect","retryAfterPairing","useNegotiatedMtu","Number","isInteger","reset","send","commands","then","writeInOrder","catch","error","command","writeCommand","delayBeforeWriteMs","setTimeout","chunk","chunksOf","frame","written","writeChunk","writeTo","value","withoutResponse","acceptsOnlyWithoutResponse","writeCharacteristicWithoutResponseForService","serviceUuid","characteristicUuid","writeCharacteristicWithResponseForService","key","toLowerCase","known","get","lookup","readAcceptsOnlyWithoutResponse","set","characteristics","characteristicsForService","characteristic","find","uuid","Boolean","isWritableWithoutResponse","isWritableWithResponse","size","Math","max","chunks","start","length","push","slice","attempt","isConnected","join","message","expectedEnd","test","errorCode","code"],"sourceRoot":"../../../../../../src","sources":["modules/bt-management/services/devices/bt-command-writer.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bt-command-writer.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare class BTCommandWriter {
|
|
|
17
17
|
private readonly retryAfterPairing;
|
|
18
18
|
private pendingWrites;
|
|
19
19
|
private mtu;
|
|
20
|
+
private readonly writeOnlyWithoutResponse;
|
|
20
21
|
constructor(device: Device, onError?: ((error: BleError | Error) => void) | undefined, isNormalDisconnect?: (() => boolean) | undefined, retryAfterPairing?: PairingRetry);
|
|
21
22
|
/**
|
|
22
23
|
* Records what the link actually negotiated.
|
|
@@ -55,9 +56,13 @@ export declare class BTCommandWriter {
|
|
|
55
56
|
* Writes one chunk the way the characteristic accepts writes.
|
|
56
57
|
*
|
|
57
58
|
* A with-response write to a characteristic that only supports write-without-response
|
|
58
|
-
* fails outright,
|
|
59
|
+
* fails outright, and some devices drop the link on it. A command can say which it is;
|
|
60
|
+
* otherwise the characteristic's own properties decide.
|
|
59
61
|
*/
|
|
60
62
|
private writeTo;
|
|
63
|
+
/** Reads once per characteristic whether it refuses with-response writes. */
|
|
64
|
+
private acceptsOnlyWithoutResponse;
|
|
65
|
+
private readAcceptsOnlyWithoutResponse;
|
|
61
66
|
/**
|
|
62
67
|
* Splits a frame into writes the link will carry whole.
|
|
63
68
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bt-command-writer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-command-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAW,MAAM,oBAAoB,CAAC;AAU3D;;;;;;;;GAQG;AACH,qBAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"bt-command-writer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-command-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAW,MAAM,oBAAoB,CAAC;AAU3D;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAMxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IARpC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAuC;gBAG7D,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAK,IAAI,aAAA,EAC3C,kBAAkB,CAAC,GAAE,MAAM,OAAO,aAAA,EAClC,iBAAiB,GAAE,YAAsB;IAG5D;;;;;;OAMG;IACI,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAAI,CAI5C;IAEF,kEAAkE;IAC3D,KAAK,QAAO,IAAI,CAErB;IAEF;;;;;;;OAOG;IACI,IAAI,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAQ/D;IAEF,OAAO,CAAC,YAAY,CAMlB;IAEF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY,CAclB;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,CAmBb;IAEF,6EAA6E;IAC7E,OAAO,CAAC,0BAA0B,CAahC;IAEF,OAAO,CAAC,8BAA8B,CAiBpC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CASd;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAkChB;CACH"}
|
package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare class BTCommandWriter {
|
|
|
17
17
|
private readonly retryAfterPairing;
|
|
18
18
|
private pendingWrites;
|
|
19
19
|
private mtu;
|
|
20
|
+
private readonly writeOnlyWithoutResponse;
|
|
20
21
|
constructor(device: Device, onError?: ((error: BleError | Error) => void) | undefined, isNormalDisconnect?: (() => boolean) | undefined, retryAfterPairing?: PairingRetry);
|
|
21
22
|
/**
|
|
22
23
|
* Records what the link actually negotiated.
|
|
@@ -55,9 +56,13 @@ export declare class BTCommandWriter {
|
|
|
55
56
|
* Writes one chunk the way the characteristic accepts writes.
|
|
56
57
|
*
|
|
57
58
|
* A with-response write to a characteristic that only supports write-without-response
|
|
58
|
-
* fails outright,
|
|
59
|
+
* fails outright, and some devices drop the link on it. A command can say which it is;
|
|
60
|
+
* otherwise the characteristic's own properties decide.
|
|
59
61
|
*/
|
|
60
62
|
private writeTo;
|
|
63
|
+
/** Reads once per characteristic whether it refuses with-response writes. */
|
|
64
|
+
private acceptsOnlyWithoutResponse;
|
|
65
|
+
private readAcceptsOnlyWithoutResponse;
|
|
61
66
|
/**
|
|
62
67
|
* Splits a frame into writes the link will carry whole.
|
|
63
68
|
*
|
package/lib/typescript/module/src/modules/bt-management/services/devices/bt-command-writer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bt-command-writer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-command-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAW,MAAM,oBAAoB,CAAC;AAU3D;;;;;;;;GAQG;AACH,qBAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"bt-command-writer.d.ts","sourceRoot":"","sources":["../../../../../../../../src/modules/bt-management/services/devices/bt-command-writer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAW,MAAM,oBAAoB,CAAC;AAU3D;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAMxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IARpC,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,GAAG,CAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAuC;gBAG7D,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,KAAK,IAAI,aAAA,EAC3C,kBAAkB,CAAC,GAAE,MAAM,OAAO,aAAA,EAClC,iBAAiB,GAAE,YAAsB;IAG5D;;;;;;OAMG;IACI,gBAAgB,GAAI,MAAM,MAAM,KAAG,IAAI,CAI5C;IAEF,kEAAkE;IAC3D,KAAK,QAAO,IAAI,CAErB;IAEF;;;;;;;OAOG;IACI,IAAI,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAQ/D;IAEF,OAAO,CAAC,YAAY,CAMlB;IAEF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,YAAY,CAclB;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,CAmBb;IAEF,6EAA6E;IAC7E,OAAO,CAAC,0BAA0B,CAahC;IAEF,OAAO,CAAC,8BAA8B,CAiBpC;IAEF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CASd;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,CAkChB;CACH"}
|