C# SerialPort - эмулирует клавиатуру pos

Ну, нет 1 024 байтов в meg, существует 1 024 байта в K и 1024 K в meg...

Тем не менее 1024 безопасное "волшебное" число, которое никогда не будет изменяться ни в какой системе, в которой можно ожидать, что программа будет работать.

5
задан Jonas 6 April 2010 в 16:55
поделиться

2 ответа

EDITED , чтобы дать больше перспективы с точки зрения моделирования клавиатуры.

Так получилось, что я писал низкоуровневые драйверы для клавиатуры 92R в далеком прошлом.

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

Из того, что вы описали:

  • Первая 8-байтовая команда, которую вы отправили, вероятно, была командой сброса (поскольку она вызвала звуковой сигнал клавиатуры) . Клавиатура отправляет ответ для подтверждения команды, а затем сбрасывается.

  • После отправки команды сброса приложению POS необходимо дождаться сброса клавиатуры (я думаю, около 3000 мс) перед отправкой других команд.

  • Похоже, что вторая отправка - это команда для запроса версии прошивки.

  • POS-приложению также необходимо будет впоследствии отправить команду для включения «автоматического ввода», прежде чем клавиатура будет отправлять нажатия клавиш.

  • Также доступны команды для запроса положения блокировки клавиатуры, звукового сигнала генератора тона, включения / отключения MSR и запись на дополнительный встроенный 2-строчный дисплей. Таким образом, ваш симулятор должен быть способен воспроизводить ответы на эти команды.

  • После того, как приложение POS включит "автоматический ввод", клавиатура будет отправлять незапрашиваемые сообщения с нажатыми клавишами (или изменениями положения клавиш или вводом MSR). IIRC эти сообщения также имеют порядковый номер и контрольную сумму, которые вам нужно будет воспроизвести в вашем симуляторе.

Единственная известная мне сигнализация - это то, что клавиатура поднимает CTS, когда она готова к приему данных. Если вы подключаете два порта на ПК, вам понадобится специальный нуль-модемный кабель (см. Ниже), чтобы, когда ваш симулятор поднимает RTS на COM4, ​​он будет отображаться как CTS на другом порту.

COM-порты на материнской плате TeamPOS подать питание на клавиатуру. Вероятно, вы не захотите подключать эти контакты к порту COM4, ​​поэтому я бы предложил использовать нуль-модемный кабель, который соединяет только следующие контакты:

2 (данные Tx) - 3 (данные Rx)

3 ( Rx data) - 2 (Tx data)

7 (RTS) - 8 (CTS)

8 (CTS) - 7 (RTS)

COM-порты на материнской плате TeamPOS обеспечивают питание клавиатуры. Вероятно, вы не захотите подключать эти контакты к порту COM4, ​​поэтому я бы предложил использовать нуль-модемный кабель, который соединяет только следующие контакты:

2 (данные Tx) - 3 (данные Rx)

3 ( Rx data) - 2 (Tx data)

7 (RTS) - 8 (CTS)

8 (CTS) - 7 (RTS)

COM-порты на материнской плате TeamPOS обеспечивают питание клавиатуры. Вероятно, вы не захотите подключать эти контакты к порту COM4, ​​поэтому я бы предложил использовать нуль-модемный кабель, который соединяет только следующие контакты:

2 (данные Tx) - 3 (данные Rx)

3 ( Rx data) - 2 (Tx data)

7 (RTS) - 8 (CTS)

8 (CTS) - 7 (RTS)

4
ответ дан 15 December 2019 в 01:07
поделиться

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

0
ответ дан 15 December 2019 в 01:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: