Можно ли общаться с торговыми автоматами (которые используют MDB), используя UART напрямую, без использования аппаратного адаптера? - PullRequest
2 голосов
/ 09 мая 2019

Я создаю безналичное устройство на основе Linux и пытаюсь установить связь с VMC в торговых автоматах через UART напрямую, не требуя дополнительного аппаратного адаптера для преобразования данных 8- и 9-битных кадров.

Я использую только безналичное устройство, не собираюсь подключать какие-либо другие периферийные устройства к VMC.

Я читал вопросы, задаваемые по этому поводу ранее, некоторые из них подчеркивали необходимость адаптера, другие предлагали возможные способыдостичь преобразования 9-бит в 8-бит, но все еще не могу найти подтвержденное работающее и стабильное решение.

Мой вопрос: возможно ли (и надежно) добиться этого с помощью чисто программного решения?и как?

Спасибо

1 Ответ

1 голос
/ 30 мая 2019

Да.

9-й бит является управляющим битом. Он покажет, следует ли интерпретировать данные как адрес или как данные. Если вы общаетесь с одним устройством и отправляете только данные, вы хотите удалить 9-й бит и посмотреть только на фреймы данных. Проверьте и посмотрите, всегда ли он равен нулю:

If controlBit = 0:
    ProcessData(byte)
Else:
    print("This is an address: " + byte)

EDIT: Многие люди сообщают, что ваше соединение не будет стабильным без специального оборудования из-за проблем с синхронизацией.

Вместо того, чтобы изобретать велосипед, вы можете использовать исходный код в качестве отправной точки. https://github.com/mhaqs/vendiverse/wiki/Programming-the-VMC

Таким образом, вам не нужно повторять одни и те же ошибки снова и снова.

...