Отправить байтовый массив через MQTT - JavaScript Paho Eclipse - PullRequest
0 голосов
/ 28 января 2020

Я подключил MQTT-брокер через Eclipse Paho JavaScript Клиент и от Arduino я получаю сообщения примерно так: 3 1 0 255, где каждый байт - это что-то (температура, давление и т. Д. c ... ) и это нормально, но теперь я хочу отправить сообщение вроде 32 0 1 2 3 4 10 1 20 , где каждый байт тоже что-то, но когда я пытаюсь отправить это сообщение - я получаю это в ASCII вместо десятичных дробей. Я имею в виду, я получаю гекс для 3, еще один для 2, еще один для пробела и т. Д.

$('#clicktest').click(function() {
var ms = "32,0,1,2,3,4,10,1,20";
sendMes(ms);
});

function sendMes(mes) {
message = new Paho.MQTT.Message(mes);
message.destinationName = "test/g";
client.send(message);
}

Сначала я погуглил, и, как я понимаю, я должен отправить целые числа как байтовый массив, но я Я не смог понять, как я могу обернуть эти числа в байтовый массив и отправить их брокеру, чтобы он не был преобразован в ASCII.

Я новичок в этом материале mqtt, поэтому, пожалуйста, не могли бы вы дать мне направление

1 Ответ

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

Это не совсем MQTT-спецификация c, но вам нужно использовать что-то вроде uint8array для хранения данных.

например

$('#clicktest').click(function() {
  var ms = new Uint8Array([32,0,1,2,3,4,10,1,20]);
  sendMes(ms);
});

function sendMes(mes) {
  message = new Paho.MQTT.Message(mes);
  message.destinationName = "test/g";
  client.send(message);
}
...