У меня есть карточный автомат и приложение для Android. Приложение Android подключается к карточному автомату через последовательный кабель с помощью преобразователя USB-RS232. Приложение Android работает как приложение Ionic Cordova и использует библиотеку com.github.mik3y:usb-serial-for-android:3.4.3.
Однако мы столкнулся с проблемами при разборе ответа от машины. Библиотека предоставляет метод:
Код: Выделить всё
public void onNewData(byte[] data)
Код: Выделить всё
0x06 0x01
Код: Выделить всё
0x02 seqNumber data 0x03 0x08 0x09
0x02 отмечает начало ответа.
0x03 отмечает конец ответа.
0x08 и 0x09 представляют значения CRC, которые меняются в зависимости от данных.
Проблема:
Нам необходимо:
Проверьте подтверждение.
Накопить фрагменты ответа.
Проверить CRC.
Декодировать все в течение 900 мс после отправки запроса на машину.
В настоящее время мы добиваемся этого примерно за 4 секунды, что слишком медленно. .
Подробнее здесь: https://stackoverflow.com/questions/793 ... -a-time-bo