Показано с 1 по 10 из 10

Тема: Взаимодействие со сканером по USB

  1. #1

    По умолчанию Взаимодействие со сканером по USB

    вначале разместил свой вопрос здесь
    https://owen.ru/forum/showthread.php...EA%E0%ED%E5%F0
    а потом заметил, что это ветка по СПК, аналогичных тем по ПЛК210 я не нашел, поэтому создал новую тему здесь

    Добрый день, если требуется считывать штрих-код, то там только цифры. В этом случае вопросов нет, все работает отлично. В моем случае я считываю код DataMatrix (система честный знак). Там все интереснее, в первом столбце код при подключении сканера к компьютеру, во втором - то, что получает ПЛК210 при подключении по USB, пример:

    0104601025115609215NFZ8»&gEjv%493e9OP -> 0104601025115609215LEFTSHIFTNFZ8LEFTSHIFTAPOSTROPH E7GLEFTSHIFTEJVLEFTSHIFT54F893E9LEFTSHIFTOP
    0104601025115609215NNC&?<d1iR5u93mvuY -> 0104601025115609215LEFTSHIFTNNC7SLASHCOMMAD1ILEFTS HIFTR5UF893MVULEFTSHIFTY
    0104601025115609215x2=bj-lzUmaV93MOy0 -> 0104601025115609215X2=BJ-LZLEFTSHIFTUMALEFTSHIFTVF893LEFTSHIFTMOY0
    0104601025115609215FRg8zHntErZ!93QrDr -> 0104601025115609215LEFTSHIFTFRG8ZLEFTSHIFTHNTLEFTS HIFTERLEFTSHIFTZ1F893LEFTSHIFTQRLEFTSHIFTDR
    0104607005815507215ZtX%tLGKl%oe93tlZJ -> 0104607005815507215LEFTSHIFTZTLEFTSHIFTX5TLEFTSHIF TLGKLLEFTSHIFT5OEF893TLLEFTSHIFTZJ
    0104601642018543215b!rbxXWFXebv93JkJr -> 0104601642018543215BLEFTSHIFT1RBXLEFTSHIFTXWFXEBVF 893LEFTSHIFTJKLEFTSHIFTJR
    01046070058154842159ke2ShccM)c6932T1T -> 01046070058154842159KE2LEFTSHIFTSHCCLEFTSHIFTM0C6F 8932LEFTSHIFTT1LEFTSHIFTT
    0104607005815484215F8RQgcvCnMye93Zt7e -> 0104607005815484215LEFTSHIFTF8LEFTSHIFTRQGCVLEFTSH IFTCNLEFTSHIFTMYEF893LEFTSHIFTZT7E
    0104607005815484215LnTRU8)X9Iux93wwLD -> 0104607005815484215LEFTSHIFTLNLEFTSHIFTTRU8LEFTSHI FT0X9LEFTSHIFTIUXF893WWLEFTSHIFTLD
    0104607005815484215T7Bn»VuTVmsr93NR3k -> 0104607005815484215LEFTSHIFTT7LEFTSHIFTBNLEFTSHIFT APOSTROPHEVULEFTSHIFTTVMSRF893LEFTSHIFTNR3K
    0104607005815484215kaay.iigKLZd93SBVG -> 0104607005815484215KAAYDOTIIGLEFTSHIFTKLZDF893LEFT SHIFTSBVG

    на первый взгляд, все достаточно логично: LEFTSHIFTS - это большая S. Но, например SBVG = LEFTSHIFTSBVG. Вроде бы логично: нажали shift и кнопки - получили символы в верхнем регистре. Но теперь здесь: TVmsr93 = LEFTSHIFTTVMSRF893. Как узнать, что нажали shift, нажали кнопку Т, нажали V, отпустили shift, нажали m, нажали r. Как понять на сколько следом идущих символов распространяется LEFTSHIFT?

    Насколько я понимаю, при подключении к компьютеру ответ от сканера обрабатывается операционной системой и производится преобразование спецсимволов и служебных слов в ответе сканера к требуемому виду. В случае с контроллером ответ от сканера получается, условно говоря, в "чистом виде" без обработки драйверами операционной системы.

    Сталкивался ли кто с такой проблемой и есть ли информация об алгоритмах "раскодировки" ответов сканера?

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,010

    По умолчанию

    вообще странно, что все идет заглавными буквами.
    Для проверки после LEFTSHIFT показывайте коды в HEX символах в тестовой программе, может это поможет разобраться. Так как по коду ascii таблицы заглавные и прописные отличаются.

  3. #3

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    вообще странно, что все идет заглавными буквами.
    Для проверки после LEFTSHIFT показывайте коды в HEX символах в тестовой программе, может это поможет разобраться. Так как по коду ascii таблицы заглавные и прописные отличаются.
    использую библиотеку ОВЕН UsbHid, на выходе FB HID_EVENT получаю сразу строку ответа сканера
    представление этой строки в HEX по идее никак не изменит символов из которых она состоит
    пока в ступоре: копаю по интернету информацию, но ничего подобного найти не удается...

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,010

    По умолчанию

    Ну вопрос на каком основании библиотека меняет все на заглавные?
    Может она только отображает все большими, но коды букв отличаются? или есть какая-то настройка самой библиотеки, чтобы она не меняла буковки?

  5. #5

    По умолчанию

    Попробовал прикрепить скрин, ответ находится в DAT_SC[1].Res
    Мне кажется, что FB HID_EVENT (у меня называется SCAN) просто отдает мне весь ответ от сканера без изменений.
    Точно такую же строку получает и компьютер от сканера. Отличие в том, что в Windows есть драйвера, которые по системным словам вроде LEFTSHIFT/DOT/ENTR и прочее понимают как нужно преобразовать ответ сканера. В блоке HID_EVENT этой логики нет. Я пытаюсь понять/найти алгоритм этой логики. Пока "мне отвечают, что у них сложилось мнение, что меньше более у нас и больше менее".
    одновременно 2 кода в ответе.jpg

  6. #6

    По умолчанию

    Похоже код из последовательности блоков. Перед 93 всегда F8. И этот LEFTSHIFT для каждого блока свою роль играет. Вернее в блоке. И надо понять как эти блоки организованы.

    PS Складывается впечатление, что в ответе урезаются служебные символы (перенос строки и пр.), и похоже надо попробовать считать полный ответ из этого порта. Помню работал с китайским дальномером, тоже подобное было, пришлось как то выкручиваться... Год прошёл, уже всё забыл что там было, но сильно напоминает именно это...
    Последний раз редактировалось МихаилГл; 03.06.2024 в 17:50.

  7. #7

    По умолчанию

    Считать полный ответ - это уже создание своей версии блока HID_EVENT (библиотека ОВЕН UsbHid). Для меня это более серьезная задача. Надеюсь, что удастся найти вариант "дешифровки" ответов сканера менее изощрённым способом.

  8. #8

    По умолчанию

    Из описания библиотеки:
    ПРИМЕЧАНИЕ
    При работе с символьными устройствами с помощью библиотеки поддерживается только
    англоязычная раскладка клавиатуры. Символы принимаются в верхнем регистре. Обработка
    одновременного нажатия нескольких клавиш не поддерживается.

  9. #9
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,010

    По умолчанию

    А библиотека хранит сам байтовый массив, кроме последующего преобразования в строку?

  10. #10

    По умолчанию

    Очень интересное и настораживающее примечание из библиотеки про верхний регистр... спасибо за заметку.
    "А библиотека хранит сам байтовый массив, кроме последующего преобразования в строку?" - если бы ОВЕН дал доступ к массиву ответа устройства, то, думаю, появились бы варианты.
    Последний раз редактировалось CORSAR1500; 04.06.2024 в 10:31.

Похожие темы

  1. Взаимодействие MasterScada с Python
    от fayzullinoff в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 04.06.2020, 10:08
  2. Ответов: 21
    Последнее сообщение: 24.03.2020, 18:29
  3. Взаимодействие MasterSCADA c СУБД MS SQL
    от vitaliylazarev в разделе Master SCADA 3
    Ответов: 3
    Последнее сообщение: 22.12.2016, 08:35
  4. Взаимодействие ТРМ-210 и МСД-200
    от Max1998 в разделе Эксплуатация
    Ответов: 1
    Последнее сообщение: 27.10.2015, 13:52
  5. Взаимодействие c EXCEL???
    от Андрей Макаров в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 21.04.2009, 09:54

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •