Включите квитирование ACK / NAK для связи через последовательный порт UART - PullRequest
0 голосов
/ 08 февраля 2012

Считыватель штрих-кода, имеющий мужской интерфейс UART, подключен через последовательный порт на моем рабочем столе Ubuntu 10.10. Из проприетарного документа readme я узнал, что мне нужно включить квитирование ACK / NAK, чтобы получить ACK или NAK от устройства для команд, которые я посылаю. Я не уверен, как включить тех, кто использует программирование последовательного порта C. В среде Linux.

Может кто-нибудь пролить свет на это?

UPDATE:

Выполнено следующее для включения программного рукопожатия -
system ("stty ixon -ixoff -F /dev/tty");<BR> bzero (shcmd, 64);<BR> sprintf (shcmd, "stty ixon -ixoff -F %s", UART_DEVICE);<BR> system (shcmd);<BR>

Установить скорость -
system("stty speed 9600");<BR> bzero (shcmd, 64);<BR> sprintf (shcmd, "stty speed 9600 -F %s", UART_DEVICE);<BR> system (shcmd);<BR>

Написал команду -
unsigned char req_rev[6] = {0x05,0xA3,0x04,0x00,0xFF,0x55};<BR> n = write(fd, req_rev, 6);<BR>

Чтение с устройства -
int n = read(fd, result, 254);<BR>

Но я получал "EGAIN" каждый раз, когда читал. Есть идеи, почему я это понимаю?

1 Ответ

1 голос
/ 08 февраля 2012

ACK / NACK не существует. То, что существует, это XON / XOFF. Отсюда:

  • Документ использует ACK / NACK для XON / XOFF, и ваша проблема заключается в том, «как установить XON / XOFF на мой последовательный порт».

  • Документ верен, и первое, что вы должны сделать, это включить механизм ACK / NACK на вашем устройстве, отправив соответствующую команду. Чтобы получить помощь, вам нужно изучить документ или предоставить дополнительную информацию.

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