Windows Chrome で web-bluetooth は 20 バイトの MTU で実行されますか?
同じ 25 バイトの特性値への書き込みは、Mac OS の Chrome では成功し、Windows の Chrome では失敗します。
バイト数を減らしていくと、20 バイトに達するまでエラーが発生し続けます。これが MTU の場合、どこかに文書化されていますか? また、20 バイトを超える値を書き込む方法はありますか?
TypeScriptで次のことを試しました:
const writeBytesBuffered = async (
characteristic: BluetoothRemoteGATTCharacteristic
bytes: Uint8Array,
index: number = 0
): Promise<void> => {
while (index < bytes.length) {
await characteristic.writeValue(bytes);
index += 20;
}
}
エラーはスローされませんが、おそらく私のデバイスの GATT サーバーはエラーを処理する方法を認識しておらず、黙って失敗します。