Ну, нет 1 024 байтов в meg, существует 1 024 байта в K и 1024 K в meg...
Тем не менее 1024 безопасное "волшебное" число, которое никогда не будет изменяться ни в какой системе, в которой можно ожидать, что программа будет работать.
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)
Я не занимался разработкой последовательных портов в течение многих лет, но когда я делал это, я всегда использовал перекрестный кабель и второй компьютер с Windows HyperTerminal.