Устройство считывания штрих-кода Symbol MC30xx - Как передавать данные на ПК - PullRequest
0 голосов
/ 22 января 2009

Я разрабатываю приложение для устройства Symbol MC3000. Он работает под управлением Windows CE 4.2 Professional. Приложение представляет собой простое приложение, управляемое данными, которое хранит информацию о товарах в магазине.

Мой клиент хочет установить связь с устройством через последовательный интерфейс и интерфейс USB и прочитать данные, хранящиеся в приложении. И вот где я застрял.

Он не хочет отправлять команды на устройство, как через консоль:

RES: GET: DATA? - получить все данные с устройства в spec.format

RES: GET: VN? - получить версию программного обеспечения.

и т. Д.

Серийная линия не имеет большого значения. Но как бы вы реализовали это через порт USB. (без активной синхронизации или сетевых сокетов)

(устройство может быть подключено к USB на машине с Linux или Windows, и эти команды терминала должны работать)

У вас есть идеи, как решить эту проблему?

Не могли бы вы, ребята, порекомендовать мне литературу или материалы для чтения?

Большое спасибо.

Alef

Ответы [ 2 ]

1 голос
/ 22 января 2009

Простой и короткий ответ: «Вы не делаете».

Более сложный, длинный ответ заключается в том, что это можно сделать, но объем требуемой работы, вероятно, будет намного дороже, чем стоимость, и следует рассмотреть альтернативный вариант (например, если у вас есть какой-либо механизм для сетевого интерфейса) , используйте розетку).

Что касается USB, вы должны понимать, как работает USB, по крайней мере, в общих чертах. Когда вы подключаете это устройство к ПК, на компьютере должен быть драйвер, который понимает, как взаимодействовать с устройством. В то же время устройство должно иметь драйвер, который понимает, как разговаривать с ПК. Эти драйверы должны понимать, как работают друг друга, чтобы они могли эффективно общаться.

Когда вы используете ActiveSync, что происходит (со старыми версиями 4.2), так это то, что ActiveSync на ПК имеет драйвер последовательного интерфейса через USB, поэтому, когда вы подключаете ваше устройство, ПК говорит: «эй, это похоже на последовательное устройство "и ActiveSync сам выполняет PPP через последовательное соединение, используя этот последовательный уровень. Вниз по устройству, когда соединение установлено, драйвер, который установил OEM (usbser.dll, если быть точным), запускается и согласовывает с ПК, затем запускает клиент устройства ActiveSync с завершением создания этой сети. Сделано и сделано. Более новые устройства используют аналогичный механизм, но обычно используют RNDIS вместо последовательного через USB, поскольку ПК поставляются с поддержкой ENDIS, и это более надежно и быстрее.

Теперь, когда вы хотите удалить ActiveSync, вы должны предоставить эти драйверы - для обоих концов. Путь наименьшего сопротивления, вероятно, должен использовать HID . По крайней мере, так делается на стороне ПК (это тот же протокол, который использует мышь, поэтому любой ПК, будь то Windows или Linux, который понимает, что USB-мышь будет иметь драйвер для этого). Вам все равно придется написать драйвер HID для устройства. После этого вы можете написать приложение для каждого конца, чтобы использовать этот канал USB для связи.

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

0 голосов
/ 23 января 2009

Было бы сложно создать последовательную USB-связь между устройством и ПК. Для платформы Windows вы можете использовать RAPI как обходной путь. Устройство будет подключаться к ПК через ActiveSync. Затем, используя RAPI, вы можете (среди прочего) прочитать реестр удаленного устройства, запустить выполнение приложения на устройстве, передать файлы между ними.

Я полагаю, что если вы не хотите передавать данные в реальном времени, это сработает. Для Linux я не знаю, есть ли доступный RAPI SDK. В Windows вы можете использовать OpenNetCF RAPI SDK, который сделает вашу жизнь намного проще.

...