Прошло много времени с тех пор, как вы писали, но это может помочь кому-то в борьбе.
Я разработал небольшое мобильное приложение с платформой ionic 3.Одна из моих главных проблем была с услугой печати.
Пользователь в конце должен был напечатать квитанцию.Я сделал uint8Array()
и объединил там все десятичные числа.Я пытался также с буферами.
У меня была проблема при отправке всех данных одновременно.Принтер останавливался в той же точке.Я разбил мои переменные и вычислил их размер в байтах, чтобы увидеть, если что-то не так, но ничего не получилось.
Я пытался разбить мои окончательные переменные данные на меньшие переменные и инициализировать с помощью ESC @
, но также это не сработало.
При поиске в Интернете некоторые "гуру" сказали, что вы можете ESC @
с полным пакетом 4kbytes
.Я также попытался заполнить оставшуюся часть массива нулевыми символами до 4 КБ и попытаться инициализировать, но также ничего.
В конце я сделал очень «обезьянье» решение, и мне стыдно за это.
Я делаю цикл seTimout через мои меньшие uintarrays
setTimeout(() => {
this.btSerial.write(uint8Array)
.then(dataz => {
console.log("WRITE SUCCESS", dataz);
});
}, 100 + n *100)
и, конечно, это сработало.
Я думаю, что проблема в том, что байт андроид может отправлять нативно через Bluetooth каждые несколько мс, но я не уверен.
Надеюсь, я немного помог.
Ps ..
не пытайтесь разрабатывать мобильные приложения, которые изначально используют вещи в кроссплатформенных средах.В конечном итоге вы всегда будете пытаться изучать и писать пакеты для естественного общения ..