powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TComPort & Сканер ШК Symbol DS6707 & AztecCode
67 сообщений из 67, показаны все 3 страниц
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39532259
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток уважаемые господа. Подскажите что это может быть.
Использую ШК AztecCode с сканером Motorola Symbol DS6707.

С помощью управляющих ШК перевел сканер в режим COM-порта.
Скачал и установил для Delphi компонент TComPort.

Запустил, скомпилил example "ComExample".
Попробовал отсканировать ШК, но программа мне ничего не выдает. По дебагеру, после пропикивания ШК, даже не входит в процедуру чтения.

По мануалу включил все символики 2D... Такое ощущение, что сканер просто ничего не передает.
В режиме клавиатуры он работает.

Подскажите пожалуйста куда копать?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39532309
Фотография Kast2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

Через RealTerm не пробовал прочитать?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39532360
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13Подскажите пожалуйста куда копать?Ставьте эмулятор порта и смотрите, что идет на сам сканер и что с него
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39532387
DesWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dartveider13,

Что значит "не заходит в процедуру чтения"?
Для начала надо определиться в каком режиме работает порт в синхронном или асинхронном.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39532399
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13По дебагеру, после пропикивания ШК, даже не входит в процедуру чтения.
evChar или как-то так включено? Настройки порта (в компоненте) верно сделаны?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39532598
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Realterm не пробовал, попробую. С режимом синхронным или асинхронным тоже пока не уверен в каком он точно. Настройки сделаны на мой взгляд правильно. В Диспетчере задач устройство в com1.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39532599
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, посмотрю еще повнимательнее в понедельник. Не работал с этим компонентом. Решил для начала хотя бы через пример проги на этом компоненте что то получить
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533141
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, в настройках компонента есть галочка на evRxChar. Там вообще везде галочки есть. По поводу синхронной\асихнронной работы - я так понял отвечает свойство SyncMethod - выбрано smThreadSync - я так понимаю это синхронный режим. RealTerm еще не попробовал.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533144
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Установил RealTerm - Он также ничего не показывает, когда сканером пытаешься что-то отсканировать. Ну не сломался же он.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533163
Фотография Kast2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит ошибка в сканере.
Может не тот штрихкод для настроек сосканировал?
Штрихкод был взят из оф.документации к сканеру?
этой программой для конфигурации не пользовались?
https://www.zebra.com/us/en/support-downloads/software/utilities/123scan-utility.html
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533164
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kast2K, Дока официальная. Для эмуляции COM Сканировал ШК "Эмуляция простого Com-порта". 123Scan ставил, но еще до конца в нем не разобрался чем мне может помочь эта прога
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533167
Фотография Kast2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

Это оф. софт для программирования данных сканеров. HoneyWell из бумажной документации тоже не всегда переходит нормально из USB на эмуляцию RS232. А через оф. софт всегда.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533168
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kast2K, попробовал настроить через прогу. При отправке конфигурации на сканер, он написал, что потеряно соединение, а теперь вообще не включается
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533183
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как теперь его оживить? Нажатие с 10-секундной задержкой не помогает
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533262
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Позвонил в официальную техподдержку, сказали что сканер косякнул при записи настроек и поможет только перепрошивка. По Com-порту сказали что не очень хорошая затея его так использовать. По русскоязычным символам сказали что если он их не поддерживает, как клавиатура, значит он их никак не поддерживает. Вобщем такая техника походу мне не подходит.....
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533269
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13По русскоязычным символам сказали что если он их не поддерживает, как клавиатура, значит он их никак не поддерживает.
Большинство сканеров в режиме клавиатуры выдают скан-коды.
А это в свою очередь означает, что ОС эти нажатия трактует в соответствии с выставленной раскладкой и с капсом.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533271
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, Все это конечно классно, но сканер пока что помер, и прошить его пока не нашел как
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533681
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

а устройство в системе установлено?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39533747
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cobalt747, Бесполезно сносить ему драйвера. Он даже на машине где не подключался не определяется
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39619591
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну что ж, вернулся я к этой теме. С закирпиченным сканером совсем беда. Не смогли наши местные Омские умельцы ничего сделать. Москвичи зебровцы молчат, не хотят никаких инструкций и прошивок давать (оно и понятно, денег все хотят). В итоге первый сканер стал кирпичем.
Но..... Чудесным образом мой начальник выкопал еще один такой же сканер! Ну что ж....
Пользоваться программой 123Scan я более не хочу. Еще одного кирпича чуткое сердце начальника просто не выдержит. Вопросы все те же. Варианты описаные выше проделаны. RealTerm молчит. Сканер находится в режиме эмуляции ComPort on COM1. Все также не могу получить с него данные.
Если вдруг кому интересно помозговать, подскажите, я в свою очередь тоже буду продолжать копать.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39619818
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

со сканером вообще хоть один софт нормально работает? если нет, то нафиг он такой вообще? даже если и не кирпич.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620287
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon, он программой 123Scan распознается. Только чем мне это поможет? Мне кажется, что это такая модель сама по себе. Ну как-то странно, что второй сканер ведет себя подобным образом. Коллеги по работе с др регионов вроде говорили, что у них такой же. Сегодня попробую спросить как они его настроили. А вообще странно, что он не хочет работать в режиме эмуляции ком-порта.
Опять же. А может быть такое, что я как-то неправильно использую TComPort? Отбросив, то что мне надо считать ШК, я хотя бы хотел убедится для начала, что программа понимает его.
Судя по описанию, для считывания информации, надо его открыть:

Код: pascal
1.
ComPort.Open;



а потом использовать события:

Код: pascal
1.
2.
3.
4.
ComPortRxChar(Sender: TObject; Count: Integer);
begin
   ShowMessage('IT WORK!');
end;



Но сообщение молчит. Может что-то неправильно я использую?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620303
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, сейчас все гуглил проблему и наткнулся на то, что сканер должен в диспетчере устройств находится в разделе "Порты (COM и LPT)" тогда он будет нормально работать. А мой то там не находится, я так понял дровишки нужны. Вот в этом дело?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620309
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в режиме клавы в чем проблема им пользоваться?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620313
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблемы не было, пока мне не пришлось делать 2D-коды с большим объемом данных. Тепепрь я сжимаю текст через zlib и передаю его рисовалке ШК.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620325
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

если ты обращаешься к сканеру как к ком-порту, логично, что этот ком-порт должен быть в системе :) иначе к чему же ты обращаешься?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620330
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon, это да. Сейчас как раз этим занимаюсь. С оф сайта скачал USB CDC Driver и свежую доку. Отсканировал настроечный ШК с соответствующим параметром. В системе он определился в нужном разделе ехуууу!!! Ща буду пробовать мучать его)))
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620341
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В терминале он показывает что с него идут данные, хоть какой то сдвиг. Правда событие RxChar все равно не работает:

Код: pascal
1.
2.
3.
4.
5.
6.
var
Str: String;
begin
ComPort.ReadStr(Str,Count);
Memo.Lines.Add(Str);
end;
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620348
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Срабатывает метод RxBuf
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620405
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ан нет. RxChar лучше, но надо настроить компот как в примере. А вот вопрос. А если строка бинарная. Через zlib запакована. Как читать?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620415
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде в мануале написано что для чтения нетипизированных данных надо просто Read использовать иииии??
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620422
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знаю точно, что об этом знает Wadman))) Пока не получается
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620434
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот со строкой все супер, как же с двоичными данными быть?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620437
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

что мешает бинарные данные из порта вычитать?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620438
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon, не могу сообразить как сделать.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
ComportRxChar
var
abc: TBytes;
Str: String;
begin
ComPort.Read(abc,Count);
Str := ZDecompress(abc);
Memo.Lines.Add(Str);
end;



Сваливает программу
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620442
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

отладчик у тебя :) смотри, где валится.

За твои компоненты не скажу, проще всего прочитать порт просто виндой:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
if not ReadFile(hPort, MyBuff, SizeOf(MyBuff), ByteReaded, nil) then
  begin {ошибка при чтении данных}
    //ошибка, все закрываем и уходим
    SysErrorMessage(GetLastError);
    fmMain.btnStop.Click;
    Exit;
  end; {ошибка при чтении данных}
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620445
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon, а можно посмотреть код функции чтения?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620446
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

Так я же кинул :)
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620449
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

Открыть только что порт (hPort, это его хендл) предварительно нужно, само собой.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620450
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon, оууу, я просто подумал, что это самописная функция. Сейчас попробую, отпишусь
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620451
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох не силен я тут. Можно все таки целиком глянуть как таким образом читать?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620454
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13Сваливает программу
abc не инициализирован, count может быть одним байтом, а ты его сразу разархивируешь...
Тут просто отсутствует полностью база в голове по работе с ком-портом (и не только).

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

Поковыряйся тут http://www.dbmm.org.ua/uk/tcomport-delphi.html
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620455
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я и говорю, что со строкой все просто, а с двоичными данными борода. Не силен я в компотах)))
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620456
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanПоковыряйся тут http://www.dbmm.org.ua/uk/tcomport-delphi.html

300 раз открывал эту ссылку уже, но не нашел там того что мне надо. Или скорее всего не понял что мне оттуда надо
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620457
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

если самому не хочется обвязку делать то да, можно TComPort попробовать.
Вроде бы это основной линк на компоненты:

https://sourceforge.net/projects/comport/
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620460
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon, да, оттуда я его и взял. Вроде там обсуждения есть. Сейчас посмотрю
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620472
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из всего написанного я понял что все таки как то надо научиться пользоваться функцией TComPort.Read. Но никак не могу найти нормальный пример работы
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620484
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожалуйста как правильно использовать TComPort.Read
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620509
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ok, а вот такой вопрос. Как перевести array of byte в TBytes
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620510
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Событие ожидания символа: evRxChar. Выставлял?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620517
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, да да. Там все есть. Подскажи как array of byte в TBytes перевести. Эта строка изначально была сжата через zlib
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620523
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13Подскажи как array of byte в TBytes перевести.
Это одно и тоже.
авторTBytes declares an array of Bytes.

The TBytes type declares a dynamic array of Bytes.

Где тебе это нужно?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620524
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается следующее. Подсчитывая количество прочитанных данных

Код: pascal
1.
2.
3.
4.
5.
6.
7.
var
CNT: Integer;
buffer: array[1..3000] of byte;
begin
CNT := ComPort.Read(buffer, 3000);
Memo.Lines.add(IntTostr(CNT));
end;



Показывает несколько подходов. Но итоговая сумма всегда одна и та же. Я так понял что идет проход несколько раз. Но т к строка была сжата zlib-м он для распаковки хочет принять в себя тип TBytes. Вот я и не знаю как сделать
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620526
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZDecompressStr из zlib
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620534
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вроде просто ZDecompress, но пока понять как это работает не понимаю
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620542
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть еще функция Move, но и она что то не хочет:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
var
abc: TBytes;
buffer: array[1..3000] of byte;
cnt: Integer;
Str: String;
begin
cnt := Comport.Read(buffer, 3000);
Move(buffer, abc, cnt);
Str := ZDecompressStr(abc);
Memo.Lines.add(Str);
end;
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620552
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TBytes этот тоже array, только динамический. Задать ему размер можно с помощью Setlength.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620558
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Код: pascal
1.
2.
3.
4.
SetLength(abc, 3000);
Comport.Read(abc,3000);
Str := ZDecompress(abc);
Memo.Lines.Add(Str);



Ничего не выводит, а по отладчику после чтения с компота abc - пустой
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620563
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13, точнее после прочтения даже дальше ничего не происходит. Винда аж потухла и сканер тупанул
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620565
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13точнее после прочтения даже дальше ничего не происходит.
Потому что идет ожидание 3000 байт?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620567
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, наверное да. А как правильно? Внутренний Count использовать?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620572
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

Код: pascal
1.
2.
3.
SetLength(abc, Count);
Comport.Read(abc, Count);
.... ну и тд



Вылетает AV. По отладчику Count до чтения равен 64, а после уходит в минус(((
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620609
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dartveider13,

считай по символам. Не понятно, когда связь может оборваться в реальности и порт может никогда эти 64 байта не получит.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620610
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanсчитай
читай :) (по одному символу или байту)
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620729
MBo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBo
Гость
dartveider13,
вот как читать в динамический массив, если процедура имеет нетипизированный var-аргумент:

Код: pascal
1.
2.
3.
4.
5.
abc: TBytes;
begin
   SetLength(abc, Сount);
   ComPort.Read(abc[0], Count);
   ...



Но есть ещё один момент - данные из компорта приходят порциями, их нужно собирать и склеивать вместе, пока не наберётся полный пакет, пригодный для обработки.
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620854
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBo, да я это заметил, что данные приходят порциями. Получается надо наверное завести глобальную переменную и читать в нее?
...
Рейтинг: 0 / 0
TComPort & Сканер ШК Symbol DS6707 & AztecCode
    #39620857
dartveider13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MBo (отдельно за совет с abc[0]), и всем всем всем спасибо за участие. Основные вопросы решены. Дальше я думаю уже дело техники. Вобщем подводя итоги:

1) Вопрос по настройке сканера ШК. Тут конечно сам тупанул. Забыл совсем, что чтобы сканер корректно работал в режиме COM, он должен корректно определятся в Диспетчере устройств. Здесь меня ввел в заблуждение стандартный Последовательный порт (COM1) в системе (я наивно подумал, что это сканер, а отсоединить сканер и посмотреть осталось ли устройство не додумался).
В итоге после того как на каком-то сайте я увидел настройку др сканера и там в разделе КОМ увидел именованый сканер, то до меня дошло и я кинулся искать дровишки.
Нашел на оф сайте дровишки и скачал именно с оф сайта мануал, т к там настроечный ШК, который мне был нужен более корректный. Перепечатал страницу настроечного ШК, установил дровишки, пикнул ШК из табл 7-6 USB CDC Host. И вуаля))) Сканер заработал в режиме компота)))

2) По остальному. Поначалу я довольствовался режиму клавиатуры (со скрипом), но потом встала задача печатать 2-й ШК, в котором много букв (2-3 страницы А4). Опять же погуглив, я не нашел ничего лучше чем пользоваться библиотекой zlib, сжимая строку. С рисованием ШК получилось неплохо, но вот с расшифровкой появились вопросы именно потому что функции zlib по сжатию и распаковке строки всасывают в себя только тип TBytes. Выводя количество считанных данных за один проход, я увидел, что то что писал MBo. Данные приходят кусками. Но заделка уже была - Read(abc[0], Count); (мне надо было узнать как именно в TBytes можно считывать)
В итоге: В работающем примере получился следующий код. Конечно скорее всего не самый элегантный, но это только пример. Дальше будет перенос на основную программу.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
// Глобально инициализирована переменная res: TBytes
// с установкой SetLength(res, 0);

// Процедура ComPortRxChar
var
   CNT, LM: Integer;
begin
   CNT := 0;
   LM := Length(res);
   SetLength(res, LM + Count);
   CNT := ComPort.Read(res[LM], Count);
   Memo.Lines.Add(IntToStr(CNT));
end;

// Далее процедура кнопки расшифровки
var
   Str: String;
begin
   Str := ZDecompressStr(res);
   Memo.Lines.Add(Str); // И вуаля - наша строка в поле. Проверил длину с исходной - все совпало
end;



Еще раз всем спасибо за участие!!!
...
Рейтинг: 0 / 0
67 сообщений из 67, показаны все 3 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TComPort & Сканер ШК Symbol DS6707 & AztecCode
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]