Получение данных из Arduino WebSocket sendBIN в Javascript в виде Blob - PullRequest
0 голосов
/ 25 января 2020

Я действительно пытаюсь получить данные из BLOB-объекта в Javascript.

Этот BLOB-объект создан из ArduinoWebSocket sendBin, представляющего собой массив из 4 элементов uint8_t.

Я отлаживаю Javascript и получить

e.data: Blob {size: 4, type: "", slice: function}

Я пытался использовать FileReader из других примеров, таких как:

var reader = new FileReader();
reader.readAsArrayBuffer(e.data);
reader.onloadend = (event) => {
  // The contents of the BLOB are in reader.result:
  console.log(reader.result);
}

Я вижу в отладке

reader.result: ArrayBuffer {byteLength: 4}

Но там нет способа увидеть данные. Я вижу ArrayBuffer Prototype, но когда я углубляюсь в это, он просто продолжает идти.

1 Ответ

0 голосов
/ 25 января 2020

Хорошо, я нашел ответ. Мое собственное незнание ArrayBuffer. Его необходимо назначить правильному типу массива следующим образом:

connection.onmessage = function(e) {
  reader = new FileReader();
  reader.onload = () => {
    var data = new Uint8Array(reader.result); // Key line!!!
  };
  reader.readAsArrayBuffer(e.data);
};

Теперь «данные» будут содержать данные из ArrayBuffer (при условии, что правильный тип массива обернут вокруг reader.result);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...